根据Haskell中的字符串创建字符列表

时间:2018-11-18 11:52:25

标签: string haskell functional-programming character

我正在尝试从字符串制作为字符列表。但是我想出了一些办法,但是我陷入了困境。

compress :: String -> [Char]
compress x = [map head (group x) !! a : []| a <- [0..length x]]

问题在于这几乎可以解决问题,但是当我写“ apple”时,它附带了["a","p","p","l","e"]而不是['a','p','p','l','e'] 我们都知道 "apple" /= ["a","p","p","l","e"]

但是当我在GHCI上尝试但没有列出列表时,它可以正常工作,例如:

map head (group "apple") !! 0-> 'a'

但是,当我尝试列出这些元素的列表时,就像将每个元素都放在另一个之后,它的确像这样[[a],“ p”,“ p”,...]。 我的问题是:有没有一种方法可以将字符串放入字符列表而不将其放入“”?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

由于String[Char]的类型同义词,因此"apple"已经与['a','p','p','l','e']相同。

不确定您要寻找什么功能,但是id :: String -> [Char]可能就足够了。