球拍中的角色平等

时间:2015-02-15 17:10:16

标签: scheme racket

我想像这样做一个相等的测试

equal? somevar #\space

但即使somevar=#\space,它似乎永远不会评估为真。

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

函数equal?应该有效。

> (define a #\space)
> (define b #\space)
> (equal? a b)
#t

问题必须是别的。你如何给somevar一个值?

答案 1 :(得分:2)

在字符之间使用的最直接的相等比较过程是char=?

(define somevar #\space)
(char=? somevar #\space)
=> #t

当然,您始终可以使用equal?,但如果equal?无效,那么问题可能出在其他地方。检查比较中使用的变量,它们很可能具有不同的值或不同的类型,这可以解释错误。特别要确保somevar确实是字符而不是字符串;例如,此比较为false

(equal? " " #\space)
=> #f