9 with the corresponding letter." />
开发者

Haskell int list to String

开发者 https://www.devze.com 2023-01-28 00:30 出处:网络
I would like to know if ther开发者_运维百科e is a simple way to turn [5,2,10] into\"52a\". Where its not just to this case, I want to associate any number >9 with the corresponding letter.

I would like to know if ther开发者_运维百科e is a simple way to turn [5,2,10] into "52a". Where its not just to this case, I want to associate any number >9 with the corresponding letter.

Thanks in advance.


You want to do something to each element of a list in order to get a new list. In other words, you want to apply a function (that you will have to define yourself) to each element. This is what the map function from the Prelude is for.

To convert between integers and individual characters, you could use the chr and ord functions from the Data.Char module.

So,

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

is a function of type [Int] -> String that does what you want (no error checking included, though).


Slower but more elegant:

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

If your numbers are 0-15 use map intToDigit from Data.Char.

0

精彩评论

暂无评论...
验证码 换一张
取 消