我不是計劃專家,所以不確定在這裏使用的是正確的術語。讓我們爲自己的代碼說話:計劃中引用的符號
CSI> (define tree '(1 2 3 'Symb 4 5 6))
#<unspecified>
CSI> tree
(1 2 3 (quote Symb) 4 5 6)
CSI> (symbol? 'Symb)
#t
CSI> (map symbol? tree)
(#f #f #f #f #f #f #f)
從Clojure的背景的,我還以爲符號使用這樣的方案,像Clojure的關鍵字。我應該通過嵌套列表結構並用函數調用替換符號。這是我的一維解決方案,它的工作:
(define (print-track track attrs)
(apply fmt #t
(map (lambda (attr)
(cond
((symbol? attr) (get-attr attr track))
(else attr)))
attrs)))
上述(symbol?)
行空的空間是一個(list?)
條件,但它可能是錯的形式給出。
我正在使用雞計劃。
+1爲清晰,徹底 – acfoltzer
一個真的不能寫任何比這更清晰的答案:) – progo