返回值的方案相等

时间:2014-04-13 08:11:11

标签: function boolean return scheme

我刚开始Scheme。我正在尝试检查返回布尔值的相等性

(cond [(= (Test number) #t) 1])]

如果我的测试函数返回true,我的main函数应该返回1.但是我得到contract violation error。有人能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

=仅用于比较数字。如果您确实需要检查某些内容是否为eq?,那么#t将是正确的相等过程。

通常,任何不是#f的值都被认为是真值,如果可以,你应该这样做:

(cond [(Test number) 1]
      [else 'else-case])

您的cond错过了一个默认情况,就像我添加的情况一样。如果你Test返回#f你确实需要它,否则结果是未定义的。

关于SO的相关问题是What is the difference between eq?, eqv?, equal?, and = in scheme?