皆さん、私には問題があります。私はHaskellプログラムに2つの機能を持っています。Haskell:Haskellでのエラー/例外の処理
type Env = String -> Int
emptyEnv :: Env
emptyEnv _ = error "Failed"
insertEnv :: String -> Loc -> Env -> Env
insertEnv s loc env = case env s of
(error "Failed") -> (\inp -> (if inp==s then loc else env s))
_ -> env
したがって、私のemptyEnvは常にエラーメッセージを表示する必要があります。他の関数insertEnvを使用すると、要素をEnvに挿入できます。しかし、Envが空であるかどうかを確認する必要があり、画面にエラーが表示されます。今私の質問:エラー "失敗"は、関数のinsertEnvのenvのケースではないため、上記のコードは動作しません。あなたは、envに要素を挿入できるようにエラーを適切に処理する方法を知っていますか?
おかげadamseで取得します。すぐに話題から離れます。今度は、 'emptyEnv = \ _->( - 1)'と 'insert en loc = inp - >(inp == sならばloc else env s)'を使ってみましたが、今は 'env = "x" 42を挿入する( "y" 17 emptyEnvを挿入する) 'それから' env "y" '空のEnvの値を-1にする。何が起こっている?それは5分前に働いた! –
'... else env inp'が必要です。 – adamse