2016-03-16 118 views

回答

2

的stets所以to-list函數需要map有一些三個按鍵,分別是keyleftright的。該地圖也可以通過名稱tree訪問。有關參數解構,請參見this。然後你有一個語法報價(詳見this)。這大致相當於

(clojure.core/seq (clojure.core/concat (to-list left) 
             (clojure.core/list key) 
             (to-list rirght))) 

所以基本上,如果你有nil的樹,它會返回nil(這似乎是合理的)。如果您有一棵帶有密鑰left的樹(它可以是零,也可以是可能帶有密鑰keyleftright的地圖),則遞歸地打印左樹,然後添加密鑰,然後如果您有密鑰right,則遞歸地打印右樹。如果在任何一步你只剩下或只有權利,電話(to-list left)將產生零,其餘的將如已解釋的那樣工作。

我希望這會有所幫助。

注意我現在沒有clojure repl,所以我沒有測試什麼是語法引用的確切等價物,但它應該與我寫的東西非常類似。