如何组合两个字符串我Haskell并返回一个新的字符串

时间:2017-11-11 13:53:19

标签: haskell

如何连接两个字符串。例如,我有两个列表
["me","you","he"]["she","they","it"]。我想形成一个新的列表,其中每个相应的字符串组合到gatheer,比如 ["meshe","youthey","heit"]。现在我的问题是:如何组合两个字符串

1 个答案:

答案 0 :(得分:5)

combine = zipWith (++)

zipWith有两个列表,并将给定的功能应用于两个列表的第一项,然后是第二项等。如果一个列表比另一个列表长,则会跳过其额外的项目。

++函数有两个列表并将它们连接在一起。字符串只是一个字符列表。

"hello " ++ "world" == "hello world"

用法:

λ> combine ["me","you","he"] ["she","they","it"]
["meshe","youthey","heit"]
λ> combine [] []
[]
λ> combine ["me", "you"] ["she"]
["meshe"]
λ> 

++运算符是非常基本的,所以在进入stackoverflow之前,你可能会更好地继续阅读你正在使用的任何学习资料,因为你会有很多问题我希望能在你的书。

如果你不想使用zipWith,你可以非常简单地用递归来写它:

combine [] _ = []
combine _ [] = []
combine (x:xs) (y:ys) = (x ++ y) : combine xs ys

用法与以前相同。