在Racket中打印cond中的多个语句

Nik*_*Nik 0 scheme racket

在Racket中,我试图在"cond"语句中打印多个表达式,如下所示,

(let ((var `(make))
      (exp '(1 2)))
   (cond
      [(number? 2) `(hi ,var)
                   `(bye ,exp)]))
Run Code Online (Sandbox Code Playgroud)

但只有"再见"声明被返回/打印在屏幕上.第一个"hi"根本没有被删除.我如何退回/打印两者?

Eli*_*lay 6

你说"退回/打印",但这是两个非常不同的东西:

  • 如果你想要返回的东西,那么你应该使用多个值,或者(values 1 2)(如果你不知道多个值,你可以返回一个包含两个值的列表作为廉价的黑客).

  • 如果你要打印的东西,然后用print两次(或display,或write,或printf等等等等).

如果你是一个完整的新手,那么这些都不适合你.