是否可以将整数转换为整数?另一个方向是可能的:toInteger。我知道Integer可以存储更大的值,但有时需要使用std-lib函数进行对话。我尝试了(n::Int)和其他发现的代码示例-但没有任何效果。
takeN :: Integer -> [a] -> [a]
takeN n l = take n l
最佳答案
使用fromIntegral
。
takeN :: Integer -> [a] -> [a]
takeN n l = take (fromIntegral n) l
请注意
fromIntegral :: (Integral a, Num b) => a -> b
,因此有时您需要一个额外的类型注释(例如(fromIntegral n :: Int)
),但是通常编译器可以推断出您想要的类型。在您的示例的特殊情况下,
Data.List
中有genericTake :: (Integral i) => i -> [a] -> [a]
,它与take
一样,但具有更通用的类型。