すべての整数の定義域が0より大きい関数があるとします。他の入力の結果を未定義にします。簡単にするために、これが増分関数であるとしましょう。Haskellでは、私はこれを次のようなもので達成することができました
f :: Integer -> Integer
f x
| x > 0 = x + 1
| otherwise = undefined
もちろん、この例はかなりわかりやすいですが、私が何を達成したいのかは明確になっているはずです。スキームで同様のことを達成する方法がわかりません。
(define (f x)
(if (> x 0)
(+ x 1)
(?????)))
error
私の考えはそこに固執することですが、ハスケルの振る舞いをより厳密に再現する方法はありますか?