簡體   English   中英

Haskell int list to String

[英]Haskell int list to String

我想知道是否有一種簡單的方法可以將[5,2,10]變成"52a" 不僅僅是在這種情況下,我想將任何數字> 9與相應的字母相關聯。

提前致謝。

您希望對列表的每個元素執行某些操作以獲取新列表。 換句話說,您希望將一個函數(您必須自己定義)應用於每個元素。 這就是Prelude的地圖功能。

要在整數和單個字符之間進行轉換,可以使用Data.Char模塊中的chr和ord函數。

所以,

map (\i -> if i < 10 then chr (i + ord '0') else chr (i - 10 + ord 'a'))

是[Int] - > String類型的函數,它可以執行您想要的操作(但不包括錯誤檢查)。

更慢但更優雅:

f = map ((['0'..'9'] ++ ['a'..'z']) !!)

如果您的數字是0-15,請使用map intToDigit intToDigit。

暫無
暫無

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

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