我一直在爲計劃中的想法奮鬥了幾天。我經常寫代碼的計劃默認值函數
(define fib_h (lambda (n a b) <body ...>))
(define fib (lambda (n) (fib_h n 0 1)))
的風格,我認爲這將是對自己引入宏的好方法。不幸的是,它似乎超出了我如何宏觀化。我覺得我在一個點上親近與
(define-syntax dvf
(syntax-rules()
((_ f (args ...) (name value) ... body)
<stuff that didn't work>)))
這將定義一個函數「f」那要麼採取「ARGS ...」或「ARGS ......名字......」然後,如果只需要「參數...」它將「值...」應用於「名稱...」參數。 我可以想到兩個好辦法。第一個需要Y組合器,我真的不想和他們合作。另一種方式需要我以某種方式獲得「name ...」和「args ...」中的變量數量。如果有人能夠幫助我解決這個問題,我會很感激。
謝謝!這很有幫助。 – Triclops200
就像一個小小的附加評論:'case-lambda'旨在在[R7RS]中得到標準化(http://trac.sacrideo.us/wg/raw-attachment/wiki/WikiStart/r7rs-draft-7.pdf )。 – 2012-11-20 20:14:58