顶级作业

时间:2015-01-13 19:32:19

标签: functional-programming erlang

我试图在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

你知道如何绕过这个吗?

1 个答案:

答案 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]).

但鉴于您的问题提到了高阶函数,您可能不想使用预处理器。