繁体   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