0

私の課題は、Haskell で単語ソルバーを作成することです。アイデアは、いくつかのランダムな文字が与えられるということです。これらのランダムな文字を Haskell で入力すると、その文字が形成できる単語のリストが返されます。これについて詳しく知るために、Haskell を使用してすべてのリスト項目を比較しましたが、最後の部分で行き詰まって
います。ファイルを読み取り、すべての単語を 1 行に格納する関数があります。

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」出力です:こんにちは地獄の穴

4

2 に答える 2