こんにちはすべて私はハスケルでこの宿題を割り当てています。ここではNatデータ型で作業する必要があります。これはZero
とSucc(n)
です。したがって、1つはSucc(Zero)
、2つはSucc(Succ(Zero))
などです。また、これらのデータ型を再帰的に掛ける減算を追加することになっています。haskellでの再帰の使用
が問題の一つは、この
--Add two natural numbers.
--
-- `>>> add one two`
-- Succ (Succ (Succ Zero))
--
-- `>>> add Zero one == one`
-- True
--
-- `>>> add two two == four`
-- True
--
-- `>>> add two three == add three two`
-- True
--
のように見える私は再帰をやっているとき、私の問題は、私は基本ケースを持っているが、私はそれを呼び出すようそれだけで基本ケースを戻し、バック特にバブルませんアップ。
パターンマッチングとHaskellで再帰する方法上の任意のヘルプや説明が
EDITをいただければ幸いです。私が持っているコードはPREDが別の関数
pred :: Nat -> Nat
pred Zero = Zero
pred (Succ Zero) = Zero
pred (Succ i) = Succ(pred i)
は、あなたがこれまで持っているコードを表示
はまた、これは奇妙なフォーマットであることに注意してください。 – chepner
ベースケースの結果が得られた場合は、ベースケース以外のケースのように聞こえますが、結果を何もせずに再帰しますが、実際にコードを表示する必要があります。 – sepp2k