我试图在Erlang中使用高阶函数创建一个函数。令我惊讶的是,这似乎不太好。这是我得到的错误的简化示例。
-module(test).
-export([main/0]).
X = 1.
main() ->
io:format("~p~n", [X]).
在erl:
> c(test).
test.erl:4: syntax error before: X
test.erl:7: variable 'X' is unbound
error
你知道如何绕过这个吗?
答案 0 :(得分:3)
Erlang中没有全局变量。您可以使用函数,例如:
-module(test).
-export([main/0]).
x() ->
1.
main() ->
io:format("~p~n", [x()]).
对于像文字1
这样简单的东西,您还可以定义预处理器宏,如下所示:
-define(X, 1).
main() ->
io:format("~p~n", [?X]).
但鉴于您的问题提到了高阶函数,您可能不想使用预处理器。