我如何说Haskell将某些东西解释为特殊类型? 例如,我有一个列表,并希望将其长度除以2。 所以我写了
(length mylist) / 2
并收到此错误
没有(Fractional Int)的实例 因使用`/'
而引起的
由于我想要一个整数除法,我想制作length mylist
,2
和结果Int
。
答案 0 :(得分:11)
这里有两个不同的问题。
整数除法:使用div
函数:div (length mylist) 2
或(length mylist) `div` 2
铸造。通过编写expression :: type
而不是expression
,可以告诉Haskell特定表达式具有特定类型。但是,这不会对值进行任何“转换”或“转换”。用于在各种数字和字符串类型之间进行转换的一些有用函数是fromIntegral
,show
,read
,realToFrac
,fromRational
,toRational
,{{ 1}}和其他人。您可以在Hoogle上查看这些内容。
答案 1 :(得分:5)
试试div (length my list) 2
。 /
进行分数除法; div
进行整数除法。