2016-08-13 33 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中,您不能用變量的名稱定義一個函數:函數名以小寫字母開頭(或者用反引號括起來),大寫的變量名。它們可以在不同情況下定義(如問題所示)等。 –