解析エラーは、現在、私が最も嫌いなタイプの Haskell エラーです。したがって、2 番目のコンポーネントにいくつかの変数が含まれるペアのリストを取得する関数を作成しています (これはvars
、以前にコードで として定義したものによって決定されvars :: a -> [String]
ます。リストが空の場合、自由な変数はなく、置換は解決済みと見なされます。
私はこれをやったが、私はparse error on '|'
solved :: Subst a -> Bool
solved xs = null [(S(xs,d) | (S(xs,d)) <- xs, not (null (vars d)))]
以前にデータ型を次のように定義しました
data Subst a = S [(String,a)]
何が悪いのかを理解するのに永遠にかかるので、私は解析エラーを軽蔑します (笑)。誰からのアイデアはありますか?