我尝试使用"let"来定义表达式定义,但我得到的只是错误.
> let double x = x * x
not an expression: `let double x = x * x'
Run Code Online (Sandbox Code Playgroud)
是否有一个特殊的命令我必须使用或javascript编译器不支持此功能?
实际上,它不支持定义; 大概是因为它只是作为一个基本的介绍,并且可能在行之间没有状态.正如它使用提示暗示的那样,它只是简单地评估表达式.与GHCi不同,它不会尝试执行IO操作(幸运的是!),而只是尝试打印它们(由于IO操作没有Show实例,因此会失败).
但是,您可以let square x = x * x in square 42在一条线上进行操作.
顺便说一句,Try Haskell 不使用JavaScript Haskell编译器或类似的东西; 它与服务器通信以评估您输入的表达式.
总而言之,它是一个简洁的概念证明,是一个很好的初始钩子,让人们对Haskell感兴趣,但对于任何类型的实际用途,它与GHCi之类的东西相比并不适合.