关于以下map
表达式:
map(_, []) -> [];
map(F, [X|XS]) -> [F(X)| map(F, XS)].
map(fun(X) -> X*X end, [2,3,4,5,6]).
'。'之前有错误。在最后一行。我为我的生活无法弄清楚它是什么。
答案 0 :(得分:2)
map(_, []) -> [];
map(F, [X|XS]) -> [F(X)| map(F, XS)].
是函数定义并属于模块。
map(fun(X) -> X*X end, [2,3,4,5,6]).
是一个表达式并且属于某个函数定义或shell。像这样:
$ cat > my_lists.erl
-module(my_lists).
-export([map/2, squares/0]).
map(_, []) -> [];
map(F, [X|XS]) -> [F(X)| map(F, XS)].
squares() -> map(fun(X) -> X*X end, [2,3,4,5,6]).
$ erl
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.3 (abort with ^G)
1> c(my_lists).
{ok,my_lists}
2> my_lists:map(fun(X) -> X*X end, [2,3,4,5,6]).
[4,9,16,25,36]
3> my_lists:squares().
[4,9,16,25,36]
4>
User switch command
--> q
$