0

我想在 Haskell 中制作一个应用程序,它可以从几个字符中提供所有可能性。这适用于置换函数。但是现在我想在列表中每个单词的输出中添加一个前缀和一个后缀。像:

输入:

combinations "prefix" "sufix" "randomletters"

输出(类似这样)

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

应用背景: 像拼字游戏。首先,前缀就像单词可以开头的 2 个字母。然后是单词可以结尾的2个字母。然后是你手中的字母。

4

1 回答 1

1

您可以map添加前缀的函数:

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

解决这个问题的方法是分解问题,就像你已经开始做的那样:

  • 创建一个函数来给出每个排列 ( permutation)
  • 创建函数以添加前缀和后缀(\x -> pre ++ x等)
  • 将这些函数应用于每个排列 ( map) 以创建两个单词列表
  • 合并两个单词列表 ( ++)
于 2013-06-22T11:04:58.270 回答