ClojureScript不需要Clojure的defstruct的原因是什么?

What was the reasoning behind ClojureScript not needing Clojure's defstruct?

ClojureScript不支持

defstruct-它似乎是设计使然。现在可能这实际上是Clojure语言的不推荐使用的一部分,而ClojureScript的设计者只是希望每个人都继续前进。 (但这是我的推测)。

我的问题是:ClojureScript不需要Clojure的defstruct的原因是什么?


有效地弃用了

defstruct的语言,而推荐使用defrecord。我们应该继续使用(基于JVM的)Clojure,所以我希望Clojurescript是相同的。请参阅以下内容:

Clojure:数据结构:"注意:现在,记录可以更好地使用StructMaps的大多数用法。"

ClojureDocs:defste评论者Steveminer:"结构已过时。请改用记录。请参见defrecord。"

即将面世的《 Clojure的喜悦》,第二版。 (由Fogus和Houser撰写的V9预发行版)说:"随着defrecord的出现,几乎不再需要结构,因此本书不涉及结构。" (第322页)

还请注意《 Programming Clojure,第二版》。由Halloway和Bedra撰写的内容涵盖了defrecord,但没有涵盖defstruct(尽管有一些关于结构的过时提法-可能是从第1版起意外遗漏了。)。

我想这些天所有很酷的人都在使用defrecord。 :-)

亚历克斯·米勒(Alex Miller)的回答"我应该在Clojure的哪儿使用defrecord?"很好地讨论了defrecord的优点(和缺点),尽管他主要不是将其与defstruct进行比较。