In class coding from Jan. 8 lecture

Eshell V8.3  (abort with ^G)
1> 2+3.
5
2> Fun(X,Y) -> X*Y end.
* 1: syntax error before: '->'
2> F = fun(X,Y) -> X*Y end.
#Fun
3> F(2,3).
6
4> f(F).
ok
5> F = fun(N) -> lists:seq(1,N) end.
#Fun
6> F(3).
[1,2,3]
7> f(F).                            
ok
8> F = fun(N) -> [ "hello world" || _ <- lists:seq(1,N)] end.
#Fun
9> F(3).
["hello world","hello world","hello world"]
10> f(F).                                                     
ok
11> G = fun(I) -> io:format("hello world.  ~w*~w = ~w~n.", [I, I, I*I]) end.
#Fun
12> G(3).
hello world.  3*3 = 9
.ok
13> f(G).
ok
14> G = fun(I) -> io:format("hello world.  ~w*~w = ~w.~n", [I, I, I*I]) end.
#Fun
15> G(3).                                                                   
hello world.  3*3 = 9.
ok
16> F = fun(N) -> [ spawn(fun() -> G(I) end) || I <- lists:seq(1,N)] end.
#Fun
17> F(5).
hello world.  1*1 = 1.
hello world.  2*2 = 4.
hello world.  3*3 = 9.
hello world.  4*4 = 16.
hello world.  5*5 = 25.
[<0.75.0>,<0.76.0>,<0.77.0>,<0.78.0>,<0.79.0>]
18> spawn(fun() -> ok end).
<0.81.0>
19> f(F).
ok
20> F = fun(N) -> [ spawn(fun() -> receive after I*1000 -> ok end, G(I) end) || I <- lists:seq(1,N)] end.
#Fun
21> F(5).
[<0.85.0>,<0.86.0>,<0.87.0>,<0.88.0>,<0.89.0>]
hello world.  1*1 = 1.
hello world.  2*2 = 4.
hello world.  3*3 = 9.
hello world.  4*4 = 16.
hello world.  5*5 = 25.
22>