嗨,大家好:在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