在 Haskell 中,我有这个主要功能:
combinations pre suf letters = prefixed ++ suffixed
where
perms = permutation letters
prefixed = map (\x -> pre ++ x) $ perms
suffixed = map (\x -> x ++ suf) $ perms
main = do
ls1 <- fmap lines (readFile "dictionary.txt")
let ls2 = combinations "Apple" "Citrus" "Banana"
如何结合 ls1 和 ls2 并打印出双倍的?双重的必须不区分大小写。因此,如果我有香蕉和香蕉,则必须打印其中的 1 个。
编辑:
ls1 是 dictionary.txt 中的行列表
ls2 是来自另一个称为组合的函数的不同组合的列表
我想合并/合并/连接 ls1 和 ls2。到像 ls3 这样的列表。该列表将包含 dictionary.txt 中的所有行以及 ls2 中的 alle 组合和组合函数。
然后它必须打印 ls3 中的所有双元素作为输出。
编辑2:
dictionary.txt 的结构(只是一个随机列表,里面有很多单词。)是这样的:
Apple
Strawberry
Clown
.....
组合功能(请参阅我的代码中的编辑):从以下输入中生成:
combinations "a" "b" "ded"
输出:
["acd","adc","cdb","dcb"]
背景:应用程序是像拼字游戏这样的游戏:“pre”和“suf”是板上的字符。而“字母”是玩家的字母。
示例值:
ls1
["Apple","Strawberry","Clown".....]
ls2
["Clwno","Clonw","Clown"..]
ls3
["Apple","Strawberry","Clown","Clwno","Clonw","Clown"]
现在在 ls3 中,您会看到 2 次“小丑”一词。作为我想要的输出:
["Clown"]
这就是我在 ls3 中使用双字的意思。