Answers:
在GHCi 7.x或更低版本中,您需要let
在其中定义内容。
Prelude> let f x = x * 2
Prelude> f 4
8
从GHC 8.0.1开始,GHCi支持顶级绑定,因此OP的代码可以正常使用。
GHCi, version 8.0.1.20161213: http://www.haskell.org/ghc/ :? for help
Prelude> f x = x * 2
Prelude> f 4
8
使用ghci的一个好的经验法则是,您输入的任何代码都应符合do-block语义;也就是说,可以从句法上假设您正在IO monad中进行编程(如果这是新术语,请不用担心!我强烈建议您通读本教程)。
该答案通过一个示例说明了这一点,并且可以提供有关IO和ghci性质的更多工作见解。
let
;我就像“ wtf,为什么我必须使用let
”,然后我读了此书并被启发。
let
在其示例中没有