由于语法错误,我无法对Haskell做任何事情

时间:2014-04-01 13:21:19

标签: haskell syntax hugs

我可以执行简单的操作,比如

Hugs> 2+2
例如

。或者任何操作。

但是当涉及到实际尝试定义一个函数时,例如:

occurs :: Eq a => a -> [a] -> Bool 
occurs x l = x `elem` l

然后我收到消息:

ERROR - Syntax error in input (unexpected `=')

在其他情况下我也得到unexpected `::'。我正在使用WinHugs。

2 个答案:

答案 0 :(得分:6)

在交互模式下输入函数时,需要使用let,并且还必须使用分号分隔行:

let occurs :: Eq a => a -> [a] -> Bool; occurs x l = x `elem` l

答案 1 :(得分:6)

您需要将函数保存在文件(* .hs)中并通过:load <filename>加载,因为提示只接受表达式。

  

8.5. How do I enter function definitions?

     

Hugs提示只接受表达式进行评估。您可以创建一个包含Haskell模块的文件,并加载该文件(有关详细信息,请参阅Section 2.2)。

如果你想在REPL环境中试验函数定义,我建议你改用GHCi。