fuz*_*fuz 15
在Haskell中,字符串只是(喜欢)字符列表; 你可以找到这条线
type String = [Char]
Run Code Online (Sandbox Code Playgroud)
在每个Haskell实现的源代码中的某个地方.这使得诸如找到某个字符的第一个出现(elemIndex 'a' mystring)或计算每个字符的频率(map (head &&& length) . group . sort)是微不足道的任务.
因此,您也可以使用带字符串的列表的常用语法.实际上,"foo"只是糖['f','o','o'],而反过来只是糖'f' : 'o' : 'o' : [].您可以根据需要对它们进行模式匹配,贴图和折叠.举例来说,如果你想获得在位置上的元素n的mystring,你可以使用mystring !! n,前提是0 <= n < length mystring.
alt*_*ive 12
好吧,问题确实说他想要一个数组:
import Data.Array
stringToArray :: String -> Array
stringToArray s = listArray (0, length s - 1) s
Run Code Online (Sandbox Code Playgroud)
该string类型只是一个别名,[Char]因此您无需执行任何操作.
Prelude> tail "Hello"
"ello"
Prelude> ['H', 'e', 'l', 'l', 'o']
"Hello"
Prelude> "Hello" !! 4
'o'
Run Code Online (Sandbox Code Playgroud)