如何从命令行运行arity函数大于1的erlang程序

mis*_*iek 5 erlang

如何从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视为列表......

Cod*_*ody 5

创建一个带有列表的函数,如下所示:

-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函数时,它将打破列表并执行求和.注意我没有对此进行测试,但如果您将参数作为列表获取,它应该可以工作.