私はSchemeの専門家ではありませんので、ここで正しい用語を使用しているかどうかはわかりません。コードにしてみましょう自分自身のために話す:記号はSchemeで引用されています
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?)
のためだったが、それはおそらく間違ってaproachです。
私はチキンスキームを使用しています。
+1、わかりやすく、徹底 – acfoltzer
本当にこれよりも明確な答えを書くことはできません。 – progo