用于替代ADT和模式匹配的Clojure?

Neo*_*ian 15 haskell functional-programming clojure abstract-data-type pattern-matching

每当在Haskell中我们需要一些变量数据类型时,我们会将ADT与模式匹配结合使用.Clojure人们对这些用例有什么用处?

Ray*_*yne 10

嗯,实际上有一些为Clojure编写的模式匹配库.Clojure的宏使这种事情成为可能.Matchure是最新的之一.在contrib中甚至还有一些针对ADT的东西.

忽略这些东西,我们在核心Clojure中对Haskell的ADT最接近的是Clojure 1.2中的新记录和数据类型.但是,除非您需要使用记录或数据类型带来的好处,否则通常只需使用地图.Clojure是一种动态语言,所以如果你使用记录等,你就不会得到静态类型检查.

Clojure具有"解构",这让人想起模式匹配,并且在惯用的Clojure中使用了很多.看到这个这个.前者是你真正的答案.,p