嗨,大家好:在java中,我們都有使用我們的ide來遍歷複雜數據類型深度的經驗:Clojure:地圖列表地圖...如何討論任何數據結構
dog.getCollar().getCollarTag().getName();
但是,在Clojure中,由於缺少靜態類型,這變得不重要。我們如何「抵抗」或者對抗可能來自嵌套數據結構的複雜事物的Clojure?
1)對clojure數據結構的深度有一個可取的「限制」?
和
2),用於處理abritrarily深度嵌套的數據結構的一個常見成語,這防止 錯誤,例如誤的列表在地圖,或無法正確下部/上部外殼一個變量名?
原諒我,如果我在這裏聽起來有點偏離範式......可能是這樣的錯誤可以通過在REPL中不斷測試來有效抑制..但是,我想知道是否還有其他方法爲確保在編譯時,該代碼儘可能正確的(即單元測試,IDE/emacs的插件,等...)
好的答案,最近我在一個項目上做了同樣的工作。 REPEL節省時間,進入,更新,關聯對於嵌套地圖非常有用,解構和多方法可以消除混亂,並有助於專注於處理數據的邏輯。對於驗證,我已經使用closchema https://github.com/jestan/closchema,它大部分時間都在工作:) – 2012-01-16 15:50:24