2013-06-22 53 views
0

我想在Haskell中創建一個應用程序,它可以從幾個字符中提供所有可能。這與排列功能一起工作。但是現在我想添加到列表中每個單詞的前綴和後綴的輸出。像:如何將字符添加到Haskell中的排列輸出中?

輸入:

combinations "prefix" "sufix" "randomletters" 

輸出(像這樣)

["prefixrandomletters", "prefixrandomletters","prefixrandomletters","prefixrandomletters","suffixrandomletters","suffixrandomletters","suffixrandomletters","suffixrandomletters","suffixrandomletters",] 

背景的應用程序: 像拼字遊戲。首先,這個前綴就像這個單詞可以開頭的2個字母。然後2個字母可以結束。然後你手中的信件。

回答

1

您可以map,增加了前綴的函數:

combinations pre suf letters = prefixed ++ suffixed 
    where 
    perms = permutations letters 
    prefixed = map (\x -> pre ++ x) $ perms 
    suffixed = ... 

來解決,這是向下突破的問題,因爲你已經開始做的方式:

  • 創建一個函數來給每個排列(permutation
  • 創建功能添加前綴&後綴(\x -> pre ++ x等)
  • 應用這些功能,每置換(map)創建的話兩個列表
  • 組合字(++
+1

@ user2502169的兩份名單,我剛剛更新了我的答案。 (我把它留給你完成後綴的實現:) :) – huon

+0

感謝您的支持! – user2502169

相關問題