[英]Haskell Convert Integer to Int?
是否可以將Integer轉換為Int? 另一個方向是可能的: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
相同但具有更通用的類型。
還有fromInteger
( fromIntegral
只是從Integer
fromInteger . toInteger
,但是因為你有一個Integer
,所以你可以跳過第二部分)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.