Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure:基于模式匹配的编程 上下文_Clojure - Fatal编程技术网

Clojure:基于模式匹配的编程 上下文

Clojure:基于模式匹配的编程 上下文,clojure,Clojure,我为这个问题过于温和/哲学而道歉;这是一套我无法形式化的想法/观察/直觉 我最近一直在用Clojure编写大型应用程序,并使用 *clojure匹配宏 *规则调度系统(1)小胡子和(2)组合 *塞德里克的安全朋友 我喜欢这三种方法,这三种方法都涉及到模式匹配的显式形式,以分派接下来发生的事情,而不是对象具有函数 问题: 这背后有一种通用的编程技术吗?如果是,它叫什么?这种模式还会在哪里出现,我如何才能了解更多 谢谢 模式匹配目前不是clojure/core的一部分,但您可以使用multimeth

我为这个问题过于温和/哲学而道歉;这是一套我无法形式化的想法/观察/直觉

我最近一直在用Clojure编写大型应用程序,并使用 *clojure匹配宏 *规则调度系统(1)小胡子和(2)组合 *塞德里克的安全朋友

我喜欢这三种方法,这三种方法都涉及到模式匹配的显式形式,以分派接下来发生的事情,而不是对象具有函数

问题: 这背后有一种通用的编程技术吗?如果是,它叫什么?这种模式还会在哪里出现,我如何才能了解更多


谢谢

模式匹配目前不是clojure/core的一部分,但您可以使用multimethod、cond、case宏和库。

您刚刚看到了冰山一角,并不是一个以模式匹配为中心的正确方法的非常干净和一致的实现。为了了解这件事的意义,请看一下术语重写系统(例如)。同样值得一看的是Wolfram Mathematica,它主要是围绕这一理念而建立的。你能推荐一本关于Mathematica的书来展示术语重写系统的全部功能吗??理想情况下,有一个副标题为“mathematica拓展思维食谱”的东西。