2016-08-13 32 views
0

我正在eclipse上运行我的erlang脚本,但我在脚本中遇到了一些问题。我的脚本是这样的:erlang中的函数名称之前的Erlang语法错误

-module(test). 
-export([Xf/1]). 

Xf = fun(X) -> X + 3 end. 

当我编译这个脚本文件,它说syntax error before: Xf。该函数可以在erlang shell中运行,但我真的不知道为什么这个问题发生在eclipse中。任何人都可以帮助我机智吗?

回答

4

在shell中,它并没有定义一个函数,它正在创建一个新变量并为其分配一个匿名函数。 Erlang模块中不能包含顶级变量,并且不能导出变量。要使其成为函数,请写

xf(X) -> X + 3. 
+0

是不是正在创建一个新变量并为其分配一个匿名函数,就像定义一个具有该变量名称的函数一样? – Zelphir

+1

这在大多数情况下都是相同的,但不完全相同。首先,在Erlang中,您不能用变量的名称定义一个函数:函数名以小写字母开头(或者用反引号括起来),大写的变量名。它们可以在不同情况下定义(如问题所示)等。 –