List 检查#t的等价性?(计划)

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

我有一个叫做“有序”的函数。用列表调用它,它会返回#t或#f

如何在函数外部的if语句中检查它返回的值? 现在我有:

(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 ...])