我學習狡詐方案的那一刻,並在文檔中我突然跑進以下結構:何時使用帶有「裸」形式參數的lambda定義?
((lambda args (display args)) 42)
=> (42)
這扔我一個循環;直到這一點我已經假定形式參數總是封閉在一個列表:
((lambda (args) (display args)) 42)
=> 42
不知何時使用這種變型,以及如何從不同的點標記爲可變的參數個數。具體來說,就是以下兩個變體之間的區別:
((lambda args (display args)) 1 2 3) => (1 2 3)
((lambda (. args) (display args)) 1 2 3) => (1 2 3)
是有區別 - 也許是更復雜的例子 - 我需要知道的,是沒有任何理由喜歡一個比其他?
作爲獎勵,'list'的定義是'(define list(lambda xx))'。 – erjiang 2012-01-13 02:32:33