问题标签 [multimethod]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - 定义 Clojure 多方法
我在一个命名空间中有以下内容shapes
:
现在在命名空间中执行以下shapes
命令:
返回true
。但是当我在一个命名空间中执行以下操作时,我实际上实现了多种绘图方法,
它返回false
。因此,即使我有正确的多方法调度函数,我也会收到一条错误消息,提示“未找到调度函数”。
我错过了什么吗?在一个巨大的命名空间中实现所有类型的形状对我来说似乎毫无意义。
clojure - 我可以仅在 Java 类上使用 Clojure 多方法吗?
对于我是否只能在由 Java 类表示的 clojure 结构上使用 clojure 多方法,或者我可以基于多方法来调度结构或其他属性,我有点困惑?
clojure - 我可以在 Clojure 中的类型和属性上调度一个多方法吗?
我的 Clojure 应用程序中有一个名为“visualize”的方法,据说它可以渲染我的应用程序的任何部分。我遇到的问题是我的应用程序中的某些东西是 Java 类,而有些是哈希映射,其字段内部使用 clojure :: idiom 标记映射的类型。我知道我可以使用多映射在类型或某些内部类型上进行调度,但我该如何做到这一点,以便相同的多方法同时适用于两者。
clojure - 我可以使用 Clojure 的派生来创建我的 defrecord 类类型的层次结构吗?
我想做类似的事情:
这可能吗?
更新:
我已经意识到这是不可能的,所以我正在做这样的事情:
这有意义还是有更好的方法?
c++ - 为什么 C++ 中没有多方法?
我读了很多关于如何在 C++ 中实现多方法的文章:
- http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1529.html
- http://www.codeproject.com/KB/recipes/mmcppfcs.aspx
- http://lambda-the-ultimate.org/node/2590
- http://parasol.tamu.edu/people/peterp/omm/
为什么 C++ 中没有多方法?
为什么它们不受 C++ 标准的支持?
java - Java有什么好的多方法实现吗?
我想知道是否有任何像 Lisp 一样好的 Java 多方法实现/库。
我发现了这个明显冻结的:JMMF
recursion - 自递归 clojure 多方法是嵌套分类问题的良好设计吗?
我有大量数据地图,每个地图都需要以嵌套方式分类。
即,给定的项目可能是 A 或 B(由函数确定),如果是 B,则它可能是 C 或 D(由另一个函数确定),依此类推。在每个阶段,更多与分类相关的数据可以添加到每个地图中。进行分类的功能本身非常复杂,可能需要引入额外的数据来进行确定。
自递归多方法是否是构建代码以执行此操作的好方法?我会派出迄今为止为一个项目确定的最具体的类型,或者在无能为力的情况下返回当前最好的分类。
我可以在单个分类函数中使用嵌套的 ifs 来获得预期的效果,但天哪,太丑了。
多方法在这里是否合适,或者我是否过于复杂化并且错过了一种更简单的代码结构方式?
clojure - 类 OR 关键字上的 Clojure 多方法
假设我有这个多方法
当我用 的子类调用它时Object
,它会正确调度到第一个实现:
使用:mykwd
它也可以按预期工作:
但是当我提供另一个关键字时,我得到了一个例外:
这个调度究竟是如何工作的?
是否可以为类继承保留这种行为,并且仍然有一个捕获所有关键字的“默认”实现?
编辑这个例子很简单,但我需要它来处理二进制函数。我真正的需要在下面。我不知道我该如何申请:default
。
然后我正在寻找一种方法来定义它何时arg
是nil
和(:type mp)
是什么的情况。这适用于 value for:type
是一个类,但不适用于任何关键字: