2016-10-24 33 views
0

換句話說,是否存在函數f,使得f x不計算x並僅返回void?我試圖通過使用(define (ignore x) (if true void x))來實現類似的東西,但它仍然評估x。球拍中是否存在忽略功能?

+5

球拍是一個嚴格的評價語言,所以你不能做什麼,你有一個函數形容,但你可以用宏做。例如,像'(define-syntax-rule(ignore x)(void))'應該做你期望的。雖然這是一個非常無用的宏。 –

+0

正是我需要的,謝謝。 – podington

+0

爲什麼不把表格全部刪除,如果它不應該在那裏? – Sylwester

回答

1

您還可以使用

(when #f x) 

不需要宏定義。這樣做的好處是有人閱讀你的代碼並不需要看你的宏的定義。

球拍有#;閱讀器宏來註釋表達式;考慮這是否有意義。例如,

> (+ 1 2 #;3 4) 
7