在学校的最后一个小时,我们开始学习Haskell。我们使用Helium compiler是因为它快速且易于使用。
我开始输入*
,+
等标准函数...
但这种划分是行不通的。我尝试了5 / 2
或4 / 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
类型类,只有Int
和Float
作为数字类型。 ,因此可以正常工作的有效Haskell不适用于Helium。
如果您使用的是Helium,则似乎已经按照网站的说明使用cabal
安装了它:
> cabal install helium lvmrun
那么您应该可以使用GHC和GHCi。尝试将GHCi作为交互式 shell 运行,看看是否有帮助。一开始您可能会遇到比Helium难读的错误,但是Haskell的类型错误在大多数情况下都非常有用。