球拍方案 - 如果是其他声明

时间:2018-01-22 22:09:52

标签: scheme racket

目前使用球拍,无法找到很多帮助,想知道是否有人可以帮助我..

我有

(define (reciprocal x) (/ 1 x))

然而,以前的0不应该工作。 所以我尝试将其修改为

(define (reciprocal x) (if (= x 0)((#f)(/ 1 x)))

我不确定我做错了什么,我希望如果x = 0它会返回false,但它不会这样做。我仍然可以得到倒数,只是没有检查x。有人能指出我在这里做错了什么吗?谢谢!

1 个答案:

答案 0 :(得分:3)

您需要重新构造if-else子句。此表单的典型Scheme语法如下:

(if (predicate expression) then else)

因此,您将按如下方式重写代码:

(define (reciprocal x) (if (= x 0) #f (/ 1 x)))