私はHaskellにとってはかなり新しいです。私は、2つの値とリストを取り、リストの最初の値のすべてのインスタンスを2番目の値に置き換えるプログラムを作成しようとしています。例えば。 repOcc 'n' 'i' "pink"
は"piik"
を返します。Haskellリストの値を別の値に置き換えてください。
次は私のコードです:
repOcc :: t -> t -> [t] -> [t]
repOcc x y (z:zs) = if z == x
then z = y
subst x y zs
else subst x y zs
私は、コンパイル時に受けていますエラーは次のとおりです。Haskellは「よりなることを目指してのに対し、あなたのプログラムではなく、「不可欠」を探します
rev.hs:3 :32: error:
parse error on input '='
Perhaps you need a 'let' in a 'do' block?
e.g. 'let x = 5' instead of 'x = 5'
Failed, modules loaded: none.
をコードは、あなたの期待から外れた方法を明記してください。コンパイラエラーはありますか?そのエラーは何ですか?プログラムが間違った出力をしていますか?入力と誤った出力の例は何ですか? – erisco
より簡単に開始: 'f from to x'関数を書くことができます。' f'は 'x'が' from'と等しく、 'x'が変更されていなければ' to'と評価されます。 – Ryan
コンパイル時に解析エラーが発生しました。コンパイラが 'doブロック'に 'let'を追加するように指示しています – RNee