首页 > 解决方案 > 为什么 cond 函数不在方案中打印?

问题描述

我对方案很陌生,我无法获得在 DrRacket ide 中打印的简单 cond 函数。当我运行这两个函数时:

(define (test x)
  (cond
   [(zero? x) (error "doesn't get here, either")]
   [(positive? x) 'here]))

(define (compare x y)
  (cond [(equal? x y) "Is Equal"]))

它打印:

> test 12
#<procedure:test>
12
> compare 12 12
#<procedure:compare>
12
12

为什么它不会输出任何错误或“Is Equal”?如果我直接运行 cond 语句并替换变量,它工作正常。

标签: functionconditional-statementsschemeracket

解决方案


您实际上并没有调用新过程,您必须将过程名称及其参数括在括号()中,就像您在解决方案中使用的所有其他过程一样!这是这样的:

(test 12)
=> 'here

(compare 12 12)
=> "Is Equal"

推荐阅读