我的任务是在 Haskell 中做一个单词求解器。这个想法是给你一些随机的字母。您可以在 Haskell 中键入这些随机字母,它会返回字母可以构成的单词列表。为了了解更多信息,我使用Haskell 比较所有列表项,但是我现在停留在最后一部分:
我有一个函数可以读取文件并将每个单词存储在一行中:
getList :: FilePath -> IO [String]
getList path= do contents<- readFile "wordlist.txt"
return(lines contents)
然后我还有另一个名为 randomTiles 的函数:
randomTiles :: [Char] -> [Char] -> Bool
randomTiles word letters = all (\c -> LettersinWord' c word letters) word
该函数主要查看您给出的随机字母的输入,并向用户显示是否可以用它们组成一个单词,如果是,则返回 true,否则返回 false。
现在我必须创建一个函数,将 getList 加载到 randomTiles 中,以便可以将给定的随机字母与列表中的单词进行比较。如果 randomTiles 返回 true,它必须打印可以形成的单词。但是我真的不知道该怎么做,因为我是 Haskell 的新手,我什至不确定它是否可能。我已经以这种方式尝试过,但我确定这不是这样做的方法:
solver:: [Char]->[String]
solver a = test1
where
randomTiles a b = getList a
test1= if randomTiles = true then print
为了确保,代码应该像这样工作;我给定的字母是“lohel”输出:你好地狱洞