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

use*_*112 11 haskell

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

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' : [].您可以根据需要对它们进行模式匹配,贴图和折叠.举例来说,如果你想获得在位置上的元素nmystring,你可以使用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)


hug*_*omg 7

string类型只是一个别名,[Char]因此您无需执行任何操作.

Prelude> tail "Hello"
"ello"
Prelude> ['H', 'e', 'l', 'l', 'o']
"Hello"
Prelude> "Hello" !! 4
'o'
Run Code Online (Sandbox Code Playgroud)