tryhaskell.org是否支持定义?

时间:2012-01-13 22:59:35

标签: haskell

我尝试使用“let”来定义表达式定义,但我得到的只是错误。

> let double x = x * x
not an expression: `let double x = x * x'

是否有必须使用的特殊命令或javascript编译器不支持此功能?

1 个答案:

答案 0 :(得分:8)

实际上,它不支持定义;大概是因为它只是作为一个基本的介绍,并且可能在行之间没有状态。正如它使用hint所暗示的那样,它只是简单地评估表达式。与GHCi不同的是,它不会尝试执行IO操作(幸运的是!),而只是尝试打印它们(由于IO操作没有Show实例而失败,因此失败了。)

但是,您可以在一行上执行let square x = x * x in square 42

顺便说一句,Try Haskell 使用JavaScript Haskell编译器或类似的东西;它与服务器通信以评估您输入的表达式。

总而言之,它是一个简洁的概念证明,也是让人们对Haskell感兴趣的一个很好的初始钩子,但对于任何类型的实际使用,它与GHCi之类的东西相比并不适合。