簡體   English   中英

Haskell將整數轉換為Int?

[英]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.ListgenericTake :: (Integral i) => i -> [a] -> [a] ,它執行與take相同但具有更通用的類型。

還有fromIntegerfromIntegral只是從Integer fromInteger . toInteger ,但是因為你有一個Integer ,所以你可以跳過第二部分)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM