Haskell:需要帮助设计这个功能

时间:2016-02-04 20:36:38

标签: haskell

我正在尝试设计一个函数,当给定一个字符串时,该函数将a和b插入字符串中。

例如:

给定字符串git log origin/bugfix/fix1000..bugfix_1000

该函数将返回"Hello"

1 个答案:

答案 0 :(得分:6)

去图

Prelude> 'a' : (concat $ zipWith (\x y -> x:[y]) "Hello" $ cycle "ba")
"aHbealblaob"

或没有任何细节也会这样做。

f :: String -> String
f "Hello" = "aHbealblaob"
f _       = "not specified"

实际上,有一个很好的相互递归解决方案,类似于奇数/偶数。

wrap [] = []
wrap (x:xs) = 'a':x:'b':skip xs
skip [] = []
skip (x:xs) = x: wrap xs

wrap "Hello"
"aHbealblaob"