我在 Haskell 中使用以下代码来获取字母组合的输出。
combinations pre suf letters = prefixed ++ suffixed
where
perms = permutation letters
prefixed = map (\x -> pre ++ x) $ perms
suffixed = map (\x -> x ++ suf) $ perms
我想将一个像 dictonary.txt 这样的大文本文件作为列表 ["Apple", "Banana.....]" 导入,其结构如下:
Apple
Banana
Stawberry
...... and so on
这个导入的 [String] 我想与组合的输出 [String] 合并。谁能帮我解决这个问题?
编辑: 为了更清楚。组合函数给出如下输出:
["banana","nanaba,..."]
<- 几个字符的所有可能组合。
我想将此列表与一个列表与一个从 txt 文件创建的列表合并(但我不知道如何将 txt 导入字符串列表并使用它来合并)。所以输出会是这样的。
["banana","nanaba,...,Apple,Banana,Strawbery"]
之后它将打印字符串中的双字。
Ankurs 代码的另一个编辑:
combinations pre suf letters = prefixed ++ suffixed
where
perms = permutation letters
prefixed = map (\x -> pre ++ x) $ perms
suffixed = map (\x -> x ++ suf) $ perms
fileLines :: FilePath -> IO [String]
fileLines file = readFile file >>= (\x -> return $ lines x)
main = do
lines <- fileLines "directory.txt"
putStr $ (combinations pre suf letters) ++ lines
我会得到一个解析器错误! :22:22:输入“=”时解析错误
有人可以帮我如何订购此代码吗?所以它不会出现任何错误?