Hatena::Grouperlang

msyktの日記

2013-12-14

3.4 fun

19:27

Erlangの環境を作り直した為に間が空いたが、再開。

funとは「無名の」関数だ。funには名前がないのでこう呼ばれる。

funから外のスコープの変数の値を参照できるか確認してみる。

-module(test34).
-compile(export_all).

double_plus(F) ->
    L = [1,2,3,4],
    lists:map(fun(X) -> X*2+F end, L).
masayuki@d7f347248f4e:~/work/erlang/3_4$ erl
Erlang R16B02 (erts-5.10.3) [source] [64-bit] [smp:2:2] [async-threads:10] [kernel-poll:false]

Eshell V5.10.3  (abort with ^G)
1> c(test34).
{ok,test34}
2> test34:double_plus(2).
[4,6,8,10]

funの外の変数の値を参照できることが分かる。