2016-02-04 95 views
-4

我想設計一個函數,當給定一個字符串函數插入a和b的字符串。Haskell:需要幫助設計此功能

例如:

鑑於串"Hello"

該函數將返回"aHbealblaob"

+1

請求代碼是偏離主題。你有什麼嘗試?爲什麼它不工作? –

+0

插入的規則是什麼? –

+0

@Josh我想從'a'開始,然後在'b'和'a'之間交替。並以a或b結束。 –

回答

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"