I'm learning Erlang. It's been fun! The Erlang shell is a great environment for poking around. You get there by typing
erl into the terminal.
Erlang/OTP 24 [erts-12.0.3] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit] [dtrace] Eshell V12.0.3 (abort with ^G) 1>
It might feel familiar if you've used the console in a web browser or a REPL in another language. Like the browser console, Erlang's shell environment includes handy shortcuts for shell-related activities. These are their stories.
"b" as in "bindings"
Variables in Erlang are immutable. You can't change 'em. I knew that going in, but it often trips me up in the shell.
1> One = 1. 1 2> Two = One + One. 2 3> One = 2. ** exception error: no match of right hand side value 2
Once you define a variable, you can't set it again. Immutable. Right. But sometimes, in a long shell session, I clear my screen or just forgot what variables I set.
b/0. It prints out all the variables defined in the current session along with their assigned values.
4> b(). One = 1 Two = 2 ok``` ## "f" as in "forget" Even better, `f/1` will _unbind_ a variable you want to reuse. ```erl-repl 12> b(). One = 1 Two = 2 ok 13> f(One). ok 14> One = 2. 2
And if you need a clean slate,
f/0 removes all variable bindings in the session.
16> b(). One = 2 Two = 2 ok 17> f(). ok 18> b(). ok
That's all for now. To learn more about the erlang shell, get straight into the docs.