2014-01-14 57 views

回答

4

像這樣嗎?

(define-syntax-rule (TEST . lst) 
    (quote lst)) 

(TEST first second third) 
=> '(first second third) 

或者乾脆

(define-syntax-rule (TEST . lst) 
    'lst) 
+0

那麼很容易。謝謝你,先生。我可以接受你的答案(在7分鐘內)。 – Mathias

+0

是的,如你所見,沒有真正需要宏; '(引號(第一個三分之一))'和'(TEST first second third)'相同。 – uselpa

+0

是的,我看到了,但是在這種特殊情況下,我需要'TEST' ... – Mathias

2

這裏的另一種方式,用define-syntax

(define-syntax TEST 
    (syntax-rules() 
    ((_ . lst) 'lst))) 

當然你也可以直接引用的表情,真的是沒有必要在這裏使用宏:

'(first second third)