Haskell中如何将String类型转换为[Char]类型列表
问题解答
首先明确一个Haskell的基础类型定义:String 在Haskell中就是 [Char] 的类型别名,也就是说你手里的 "bbbbffff" 本身就和你想要的 ['b','b','b','b','f','f','f','f'] 完全等价,不需要额外转换。
你可以直接在GHCi中验证:
Prelude> "bbbbffff" == ['b','b','b','b','f','f','f','f'] True
如果你是想练习map函数的使用场景,也可以通过给map传入恒等函数id的方式得到相同结果:
Prelude> map id "bbbbffff" "bbbbffff"
默认打印会展示为字符串形式,如果要显式看到字符列表的输出,可以指定返回值类型:
Prelude> map id "bbbbffff" :: [Char] ['b','b','b','b','f','f','f','f']
额外提示
- 你可以直接对任意
String类型的值使用所有列表操作函数(比如take、filter、foldl等),不需要提前做类型转换 - 如果需要对字符做修改后生成列表,把
map的第一个参数换成对应的处理函数即可,例如把所有字符转为大写:map toUpper "bbbbffff"
内容的提问来源于stack exchange,提问作者Raul
相关产品推荐
相关产品推荐

