Haskell中的函数

Sud*_*ha 3 haskell functional-programming syntax-error hugs read-eval-print-loop

我是函数式编程的新手.我有一个基本问题.

我正在使用Hugs翻译,

我想在Haskell中编写一个函数; 我去了几个教程,但我没有得到它.

fact :: Int -> Int
fact n = if n == 0 then
1
else
n * fact (n-1)
Run Code Online (Sandbox Code Playgroud)

这给了我一个语法错误:-S

ERROR - Syntax error in input (unexpected `=')
Run Code Online (Sandbox Code Playgroud)

小智 6

我假设您在交互式提示中键入此权限.遗憾的是,这些在Haskell中相对原始 - 复杂的定义,例如fact,不能在提示符下输入,至少不像你通常写的那样.

您需要将函数定义等放入模块中,然后通过(例如)加载它们:load fact.hs.Hugs专门提供了有关此主题和其他主题的更多信息(我使用http://cvs.haskell.org/Hugs/pages/hugsman/index.html来检查我的假设).

另请注意,缩进很重要,因此即使在模块中,代码也不会像您在此处发布的那样工作.那些教程将有正确的版本.如果没有,它们就没用了,你应该忘记它们.