标签: function racket lazy-evaluation
换句话说,是否存在函数f,使得f x不评估x并且只返回void?我试图通过使用(define (ignore x) (if true void x))来实现类似的东西,但它仍然评估x。
f
f x
(define (ignore x) (if true void x))
答案 0 :(得分:1)
您也可以使用
(when #f x)
,不需要宏定义。这样做的好处是,阅读代码的人不必查看宏的定义。
Racket有#;个读取器宏来注释掉表达式;考虑这是否有意义。例如,
#;
> (+ 1 2 #;3 4) 7