2

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

Hugs> 2+2

例如。或任何操作,就此而言。

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

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

然后我收到消息:

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

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

4

2 回答 2

6

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

let occurs :: Eq a => a -> [a] -> Bool; occurs x l = x `elem` l
于 2014-04-01T13:22:36.490 回答
6

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

8.5。如何输入函数定义?

Hugs 提示仅接受用于评估的表达式。你可以创建一个包含 Haskell 模块的文件,然后加载它(详见第 2.2 节)。

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

于 2014-04-01T14:44:22.717 回答