LYSE-高阶函数
将函数作为参数
一个定义的例子
-module(hhfuns). -compile(export_all). one() -> 1. two() -> 2. add(X,Y) -> X() + Y().
使用
1> c(hhfuns). {ok, hhfuns} 2> hhfuns:add(one,two). ** exception error: bad function one in function hhfuns:add/2 3> hhfuns:add(1,2). ** exception error: bad function 1 in function hhfuns:add/2 4> hhfuns:add(fun hhfuns:one/0, fun hhfuns:two/0). 3
匿名函数
语法
fun(参数1) -> 表达式1, 表达式2, ..., 表达式N; (参数2) -> 表达式1, 表达式2, ..., 表达式N; (参数3) -> 表达式1, 表达式2, ..., 表达式N end
例子
7> Fn = fun() -> a end. #Fun<erl_eval.20.67289768> 8> Fn(). a