我想像这样做一个相等的测试
equal? somevar #\space
但即使somevar=#\space
,它似乎永远不会评估为真。
这样做的正确方法是什么?
答案 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