我正在尝试设计一个函数,当给定一个字符串时,该函数将a和b插入字符串中。
例如:
给定字符串git log origin/bugfix/fix1000..bugfix_1000
该函数将返回"Hello"
。
答案 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"