如何从UNIX命令行运行大于1的arity函数?
示例程序:
-module(test).
-export([sum/2]).
sum(X,Y)->io:write(X+Y).
Run Code Online (Sandbox Code Playgroud)
编译完成后
erlc test.erl
我正在尝试类似的东西
erl -noshell -s test sum 5 3 -s init stop
但显然它不起作用,因为它将5 3视为列表......
创建一个带有列表的函数,如下所示:
-module(test).
-export([sum/2, start/1]).
start(Args) ->
% Pick X and Y args out of Args list and convert to integers
sum(X, Y).
sum(X, Y) -> io:write(X+Y).
Run Code Online (Sandbox Code Playgroud)
现在,当您的命令行将列表传递给start函数时,它将打破列表并执行求和.注意我没有对此进行测试,但如果您将参数作为列表获取,它应该可以工作.