我在Windows 7上使用ghci編譯器與版本7.8.3。我得到錯誤消息顯示輸入` - >'解析錯誤。在haskell中,我有以下代碼用於lambda表達式。haskell得到解析錯誤輸入` - >'
附加= \ XY - > X + Y
我在Windows 7上使用ghci編譯器與版本7.8.3。我得到錯誤消息顯示輸入` - >'解析錯誤。在haskell中,我有以下代碼用於lambda表達式。haskell得到解析錯誤輸入` - >'
附加= \ XY - > X + Y
當ghci
交互定義一個函數,你必須使用綁定它let
這樣的:
let add = \x y -> x + y
如果它是全局聲明的函數,則不適用。如果是這樣的話,它應該只是用加法形式'add x y = x + y',或者只是'add =(+)'來寫。 – Carcigenicate 2014-11-01 18:13:22
另外,'='和'\'必須用空格分隔,因爲'= \'是一個合法的操作符名稱。 – 2014-11-01 18:13:36
我只是寫:
add = \x y -> x + y
main = do
print $ add 1 2
它編譯並輸出3.
除非喲烏爾意圖是,雖然練習unsugared代碼,我會寫出來的:
add x y = x + y
或者
add = (+)
這是「點免費」的形式。
請注意'= \'是一個運算符。既然你想給名稱'add'分配一個lambda表達式,你需要一個空格:'= \'。 – 2014-11-01 18:51:25