想象一下,我有一个函数,其域的所有整数都大于 0。我希望其他输入的结果未定义。为了简单起见,假设这是增量函数。在 Haskell 中,我可以通过类似的方式实现这一点
f :: Integer -> Integer
f x
| x > 0 = x + 1
| otherwise = undefined
当然,这个例子很简单,但应该清楚我想要实现的目标。我不确定如何在 Scheme 中实现类似的效果。
(define (f x)
(if (> x 0)
(+ x 1)
(?????)))
我的想法是坚持error
在那里,但有没有办法更紧密地复制 Haskell 行为?