我有一个名为' ordered'的函数。使用列表调用它,它将返回#t或#f。
我怎样才能检查它在函数外的if语句中返回的值是什么? 现在我有:
(if (eqv? (ordered (car list)) '#t ))
哪个不起作用.. 我怎么能改写它?
谢谢!
答案 0 :(得分:4)
要详细说明Chris的答案,您不必明确检查#t
平等。您可以直接在if
(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 ...])
答案 1 :(得分:2)
您可以随时使用
(if (ordered (car lst))
...)
在Scheme中,唯一的错误值是#f
。其他一切都被认为是真的。