我可以执行简单的操作,比如
Hugs> 2+2
例如。或者任何操作。
但是当涉及到实际尝试定义一个函数时,例如:
occurs :: Eq a => a -> [a] -> Bool
occurs x l = x `elem` l
然后我收到消息:
ERROR - Syntax error in input (unexpected `=')
在其他情况下我也得到unexpected `::'
。我正在使用WinHugs。
答案 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。