0
爲了理解Scheme宏如何工作,我試圖定義一個新命令sum
,其工作方式與普通的operator +
(即未定義的參數數量)完全相同。方案宏擴展中的語法錯誤
我wroter此代碼:
(define-syntax sum
(syntax-rules()
((_ arg1 arg2 args...)
(sum (+ arg1 arg2) args...))
((_ arg1 arg2)
(+ arg1 arg2))
((_ arg1)
arg1)))
它的工作原理,如果我通過它1,2或3個參數。但隨着4個參數我得到這個錯誤:
sum: bad syntax in: (sum 1 2 3 4)
我試圖擴大宏觀一步一步與DrRacket但它立即停止。
有人可以解釋我造成這個錯誤的原因嗎?
當然肯定我知道關於參數..我只是想弄清楚宏是如何工作的。 – Aslan986