mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-10-09 21:16:26 +08:00
Add Erlang module examples to the introductory notebook (#2831)
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
This commit is contained in:
parent
efbc36a6f7
commit
9c4b381664
1 changed files with 33 additions and 8 deletions
|
@ -155,8 +155,6 @@ $$
|
||||||
S(x) = \frac{1}{1 + e^{-x}} = \frac{e^{x}}{e^{x} + 1}
|
S(x) = \frac{1}{1 + e^{-x}} = \frac{e^{x}}{e^{x} + 1}
|
||||||
$$
|
$$
|
||||||
|
|
||||||
<!-- livebook:{"force_markdown":true} -->
|
|
||||||
|
|
||||||
To write your own, put your math expressions between \$ signs for inline math
|
To write your own, put your math expressions between \$ signs for inline math
|
||||||
or \$\$ if you want display math. You can double click the formulas above to see
|
or \$\$ if you want display math. You can double click the formulas above to see
|
||||||
how they are written.
|
how they are written.
|
||||||
|
@ -190,11 +188,11 @@ you can leverage all of the dependency management and smart cell features
|
||||||
outlined in the previous sections. In particular, integration between
|
outlined in the previous sections. In particular, integration between
|
||||||
Erlang and Elixir will happen as follows:
|
Erlang and Elixir will happen as follows:
|
||||||
|
|
||||||
* Variables in Elixir are available in Erlang cells in camel-case
|
* Variables in Elixir are available in Erlang cells in camel-case
|
||||||
fashion. `x` in Elixir becomes `X` in Erlang. `foo_bar` becomes
|
fashion. `x` in Elixir becomes `X` in Erlang. `foo_bar` becomes
|
||||||
`FooBar`;
|
`FooBar`;
|
||||||
|
|
||||||
* Variables in Erlang are available in Elixir cells in underscored
|
* Variables in Erlang are available in Elixir cells in underscored
|
||||||
fashion. `X` in Erlang becomes `x` in Elixir. `FooBar` becomes
|
fashion. `X` in Erlang becomes `x` in Elixir. `FooBar` becomes
|
||||||
`foo_bar`;
|
`foo_bar`;
|
||||||
|
|
||||||
|
@ -205,6 +203,33 @@ but in Erlang:
|
||||||
[io:format("~ts", [Cat]) || Cat <- Cats].
|
[io:format("~ts", [Cat]) || Cat <- Cats].
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Defining modules
|
||||||
|
|
||||||
|
You can also define Erlang modules, one per cell, as you would in an `.erl` file.
|
||||||
|
|
||||||
|
```erlang
|
||||||
|
-module(direction).
|
||||||
|
|
||||||
|
-export([north/0, east/0, west/0, south/0]).
|
||||||
|
|
||||||
|
north() -> {ok, north}.
|
||||||
|
east() -> {ok, east}.
|
||||||
|
west() -> {ok, west}.
|
||||||
|
south() -> {ok, south}.
|
||||||
|
```
|
||||||
|
|
||||||
|
Macros, includes, and similar module feature are supported.
|
||||||
|
|
||||||
|
Once the module is defined, you can call the functions as usual:
|
||||||
|
|
||||||
|
```erlang
|
||||||
|
{ok, N} = direction:north(),
|
||||||
|
{ok, E} = direction:east(),
|
||||||
|
{ok, W} = direction:west(),
|
||||||
|
{ok, S} = direction:south(),
|
||||||
|
{N, E, W, S}.
|
||||||
|
```
|
||||||
|
|
||||||
We are just beginning the Erlang integration and contributions to
|
We are just beginning the Erlang integration and contributions to
|
||||||
further enrich it are welcome.
|
further enrich it are welcome.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue