2012-08-14 19 views
3

再次声明:我是Clojure的新手。谢谢您的帮助。Clojure defrecord - 如何使用它?后续

我刚才的问题(Clojure's defrecord - how to use it?)导致工作数据结构和方法:https://gist.github.com/3353281

问:有没有一种方法,以避免在我的数据结构传递到所有其上运行的方法呢?或者这是你应该用惯用Clojure做的方式吗?

+1

如果你问两个单独的问题,如果单独询问他们,对其他人会更有帮助(如果他们都很好,那么值得更多的业力)。 StackOverflow的一部分内容是构建一个可重用的知识库,让问题变得干净,简洁并且相互分离有助于实现这一目标。 – 2012-08-14 22:19:18

+0

谢谢,是的,我考虑拆分它。我觉得我的主要问题是第一个问题,第二个问题是一个很快就可能不会让其他人受益的问题,于是我加入了这个问题。 – 2012-08-14 22:21:41

+0

删除第二个问题。 – 2012-08-15 03:50:36

回答

3
  1. 数据应该始终明确传递。
  2. 如果您使用嵌套关联,则应该使用assoc-in来代替。
+0

我试图让assoc-in为此工作,但失败了;它可以用于多个值吗? – 2012-08-14 22:26:58

+0

我得到了'assoc-in'来工作,但它仍然需要嵌套'assoc's。小心提供一个例子,如果可能的话? – 2012-08-14 22:41:33

+0

@WesFreeman如果你给出了输入和输出(每一个都能够独立存在)并且询问如何在两者之间进行最佳转换,那就不一样了。只有你给的东西,我无法测试我的答案是否正确,因此我拒绝提供答案。 – 2012-08-14 23:39:01