8
我想在Racket中創建一個可以接受關鍵字參數的語法形式,就像一些函數一樣。Can Racket宏可以使用關鍵字參數嗎?
有它減少到一個簡單的例子,我試着寫:
(define-syntax sum-of-products
(syntax-rules (#:extra)
[(sum-of-products ([a b] ...))
(+ (* a b) ...)]
[(sum-of-products ([a b] ...) #:extra extra)
(+ extra (* a b) ...)]))
使得下面會再工作:
(sum-of-products ([2 2] [3 3])) → 13
(sum-of-products ([2 2] [3 3]) #:extra 5) → 18
不幸的是,球拍稱此爲「語法錯誤」,所以很明顯該嘗試不正確。
可以這樣做嗎?
特別是,在使用關鍵字參數編寫宏時,'syntax-parse'文檔有一個完整的[section](http://docs.racket-lang.org/syntax/Optional_Keyword_Arguments.html)。 – 2012-04-10 18:51:21
(呃,我忘了添加鏈接...) – 2012-04-10 19:17:23