在学校的最后一个小时,我们开始学习Haskell。我们使用Helium compiler是因为它快速且易于使用。

我开始输入*+等标准函数...
但这种划分是行不通的。我尝试了5 / 24 / 2并收到了以下消息:

"Type error in infix application
 expression       : 3 / 5
 operator         : /
   type           : Float -> Float -> Float
   does not match : Int   -> Int   -> a "

我如何使用除法运算符从2.5获取5 / 2

我尝试了div 5 2,但是后来我得到了2,而不是2.5

最佳答案

按照documentation



此外:



因此,为了进行浮点除法,您将必须使用显式的浮点文字,例如5.0 / 2.0

值得注意的是,在Haskell本身(氦气只是Haskell的子集)中,表达式5 / 2的类型很好,并且类型为Fractional a => a,但是Helium似乎根本没有Fractional类型类,只有IntFloat作为数字类型。 ,因此可以正常工作的有效Haskell不适用于Helium。

如果您使用的是Helium,则似乎已经按照网站的说明使用cabal安装了它:

> cabal install helium lvmrun

那么您应该可以使用GHC和GHCi。尝试将GHCi作为交互式 shell 运行,看看是否有帮助。一开始您可能会遇到比Helium难读的错误,但是Haskell的类型错误在大多数情况下都非常有用。

10-07 16:03
查看更多