関数の再帰を行うたびに、変数の値を更新したいと考えています。簡単にするために、例を挙げます。
関数に数値 (n) を与えると、それ自体よりも小さい数値で、それが持つことができる最大の mod を返すとしましょう。
{- Examples:
n=5 `mod` 5
n=5 `mod` 4
n=5 `mod` 3
n=5 `mod` 2
n=5 `mod` 1
-}
example :: Integer -> Integer
example n
| n `mod` ... > !The biggest `mod` it found so far! && ... > 0
= !Then the biggest `mod` so far will change its value.
| ... = 0 !The number we divide goes 0 then end! = 0
どこ... =再帰(私は思う)
どうすればもっとうまく説明できるかわかりません。あなたが私を助けることができれば、それは素晴らしいことです. :)