一、子產品内調用
1> AA=fun(BB)-> io:format("this is test args ~s~n",[BB]) end.
#Fun<erl_eval.6.17052888>
2> AA(aa).
this is test argsaa
ok
3> BB=fun()-> io:format("this is BB FUN ~n",[]) end.
#Fun<erl_eval.20.17052888>
4> BB().
this is BB FUN
5> spawn( BB).
<0.62.0>
6> spawn(fun()-> AA(cc) end).
this is test argscc
<0.67.0>
7> Fun =fun(A,B)-> io:format("the product is:~w~n",[A*B]) end.
#Fun<erl_eval.12.80484245>
8> Fun2 =fun(Fun,A,B) ->Fun(A,B) end.
#Fun<erl_eval.18.80484245>
9> Fun2(Fun,2,4).
the product is:8
二、跨子產品調用
-module(mod_user).
-export([test/0]).
test()->
io:format("hello test ~n").
1> mod_user:test().
hello test
2> spawn(fun mod_user:test/0).
<0.35.0>
3> spawn(mod_user,test,[]).
<0.37.0>
備注:2 隻能用于空參數的函數,否則隻能用3代替。
三、需要寫到檔案中
①
test(A,B)-> io:format("the product is:~w~n",[A*B]) .
test_fun(Fun,A,B)-> Fun(A,B).
test_import()-> test_fun(fun test/2,2,3).
需要導出test_import/0,然後在控制台調用module:test_import().