如果给定一个字符串,我可以让每个字符组成该字符串吗?
答案 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'