Haskell:"演员"/力型?

use*_*686 6 haskell types casting

我如何说Haskell将某些东西解释为特殊类型?例如,我有一个列表,并希望将其长度除以2.所以我写

(length mylist) / 2
Run Code Online (Sandbox Code Playgroud)

并得到此错误

使用"/"时没有(Fractional Int)的实例

因为我想要一个整数分区,我想做length mylist,2结果Int.

Pra*_*eek 11

这里有两个不同的问题.

  • 整数除法:使用div函数:div (length mylist) 2(length mylist) `div` 2

  • 铸件.人们可以告诉Haskell一个特定的表达式通过写expression :: type而不是仅仅具有特定的类型expression.但是,这不会对值进行任何"转换"或"转换".各种数字和字符串类型之间的转换一些有用的功能是fromIntegral,show,read,realToFrac,fromRational,toRational,toInteger,和其他人.你可以在Hoogle上查看这些内容.


mip*_*adi 5

试试div (length my list) 2./分数除法; div整数除法.