我想在Haskell中创建一个应用程序,它可以从几个字符中提供所有可能性。这适用于置换函数。但是现在我想在列表中的每个单词的输出中添加前缀和后缀。像:
输入:
combinations "prefix" "sufix" "randomletters"
输出(类似这样)
["prefixrandomletters", "prefixrandomletters","prefixrandomletters","prefixrandomletters","suffixrandomletters","suffixrandomletters","suffixrandomletters","suffixrandomletters","suffixrandomletters",]
应用程序的背景: 像拼字游戏一样。首先,前缀就像单词可以从2开始。那么这个词可以结束的2个字母。然后是你手中的字母。
答案 0 :(得分:1)
您可以map
添加前缀的函数:
combinations pre suf letters = prefixed ++ suffixed
where
perms = permutations letters
prefixed = map (\x -> pre ++ x) $ perms
suffixed = ...
解决这个问题的方法是打破问题,就像你开始做的那样:
permutation
)\x -> pre ++ x
等)map
)以创建两个单词列表++
)