Haskell从字符串中获取字符数组?

时间:2011-11-07 20:25:28

标签: haskell

如果给定一个字符串,我可以让每个字符组成该字符串吗?

3 个答案:

答案 0 :(得分:15)

在Haskell中,字符串只是(喜欢)字符列表;你可以找到这条线

type String = [Char]

每个Haskell实现的源代码中的某个地方。这使得查找特定字符(elemIndex 'a' mystring)的第一次出现或计算每个字符(map (head &&& length) . group . sort)的频率等任务变得微不足道。

因此,您也可以使用带字符串的列表的常用语法。实际上,"foo"只是['f','o','o']的糖,而'f' : 'o' : 'o' : []只是糖。n。您可以根据需要对它们进行模式匹配,贴图和折叠。例如,如果您希望将元素放在mystring的{​​{1}}位置,则可以使用mystring !! n,前提是0 <= n < length mystring

答案 1 :(得分:12)

嗯,问题确实说他想要一个数组:

import Data.Array
stringToArray :: String -> Array
stringToArray s = listArray (0, length s - 1) s

答案 2 :(得分:7)

string类型仅为[Char]的{​​{3}},因此您无需执行任何操作。

Prelude> tail "Hello"
"ello"
Prelude> ['H', 'e', 'l', 'l', 'o']
"Hello"
Prelude> "Hello" !! 4
'o'