List 检查#t的等价性?(计划)
我有一个叫做“有序”的函数。用列表调用它,它会返回#t或#f 如何在函数外部的if语句中检查它返回的值? 现在我有:List 检查#t的等价性?(计划),list,scheme,List,Scheme,我有一个叫做“有序”的函数。用列表调用它,它会返回#t或#f 如何在函数外部的if语句中检查它返回的值? 现在我有: (if (eqv? (ordered (car list)) '#t )) 这真的不管用。。 我怎么能重写它 谢谢 您可以随时使用 (if (ordered (car lst)) ...) 在Scheme中,唯一的假值是#f。其他一切都被认为是正确的。您可以随时使用 (if (ordered (car lst)) ...) 在Scheme中,唯一的假值是#f
(if (eqv? (ordered (car list)) '#t ))
这真的不管用。。
我怎么能重写它
谢谢 您可以随时使用
(if (ordered (car lst))
...)
在Scheme中,唯一的假值是#f
。其他一切都被认为是正确的。您可以随时使用
(if (ordered (car lst))
...)
在Scheme中,唯一的假值是
#f
。其他一切都被认为是正确的。要详细说明克里斯的答案,你不必明确地检查#t
是否相等。如果
(if (ordered (car list))
"ordered returned true"
"ordered returned non-true")
或在cond
(cond [(ordered (car list)) "ordered returned true"]
[else "ordered returned non-true"])
此外,如果过程返回布尔值,通常会在过程名称后面加上?
(define (ordered? list) ...)
这样,代码的其他部分就更容易阅读和理解了
(if (ordered? (car list)) ...)
(cond [(ordered? (car list)) ...]
[else ...])
要详细说明Chris的答案,您不必明确检查
#t
是否相等。如果
(if (ordered (car list))
"ordered returned true"
"ordered returned non-true")
或在cond
(cond [(ordered (car list)) "ordered returned true"]
[else "ordered returned non-true"])
此外,如果过程返回布尔值,通常会在过程名称后面加上?
(define (ordered? list) ...)
这样,代码的其他部分就更容易阅读和理解了
(if (ordered? (car list)) ...)
(cond [(ordered? (car list)) ...]
[else ...])