multimethod相关内容

Clojure 中的协议和多方法的多态性不如 Haskell 中的类型类强大的原因是什么?

更广泛地说,这个问题是关于表达问题的各种方法.这个想法是你的程序是数据类型和对它的操作的组合.我们希望能够在不重新编译旧类的情况下添加新案例. 现在 Haskell 有一些非常棒的解决方案来解决表达式问题 和 TypeClass.特别是 - 我们可以: class Eq a where(==) :: a ->->布尔值(/=) :: a ->->布尔值成员 :: (Eq a) =>->[a ..
发布时间:2022-01-02 22:46:58 其他开发

Clojure 多方法与协议

我是 Clojure 新手,正在寻找有关何时使用协议以及何时使用多方法的具体示例.我知道协议通常面向创建类型层次结构和典型的 OOP 事物,它们是在多方法之后添加到语言中的,并且协议通常具有更好的性能,所以我的问题是: 协议是否旨在取代多方法?如果没有,你能举个例子,我将使用多方法而不是协议吗? 解决方案 Multimethods 更强大也更昂贵, 在足够的情况下使用协议,但如 ..
发布时间:2022-01-02 22:32:33 其他开发

烧瓶静止,具有get / id并在同一类中使用json发布

如果#api.add_resource(User,‘/ user /’) 行未注释,而另一个api.add_resource是注释,则对用户的get方法起作用。 要使post方法起作用,则相反。 我如何才能同时使用这两种路径? 从烧瓶导入烧瓶中 ,从flask.ext请求 .restful导入reqparse,abort,Api,资源 导入os #将项目的根目录设置为静态文件夹 ..
发布时间:2020-06-11 01:20:22 Python

Clojure - dispatch在返回类型? (表示为Haskell类型类)

这是一个关于Clojure与其他语言(如Haskell)的表达力的问题。更广泛的问题是表达式问题的解决方案 此问题得出结论,一般来说,Clojure协议(和多方法)比Haskell类型类表达式更少,因为协议在第一个参数上调度,而Haskell类型类可以在返回类型上调度。 (现在我认为这个推理真的很有趣,没有兴趣开始一场语言战争,我只是对思想的清晰感兴趣)。 作为打破这个推理的一部分 - ..

为什么Clojure的多方法比'if'或'case'语句更好

我花了一些时间,试图理解Clojure多方法。根据我的理解,主要的“pro”多方法参数是它们的灵活性,然而,我对为什么多方法比一个简单的if或case语句更好的论证感到困惑。有人可以请解释一下,多态性和过度夸大的案例语句之间的界限是什么? 编辑:我应该在问题中更清楚,更感兴趣的是与'if'语句的比较。非常感谢您的答案! 解决方案 多方法和一个大的if语句之间的区别是,你需要修改函数包 ..

是否有可能重载Clojure多方法在arity?

我有一些代码使用多方法,并希望重载函数(在这种情况下,多功能),以便我可以传递一个更高阶的函数,以帮助测试,例如。 以下是示例: (ns multi) (defn my-print [m](println“The color is”(:color m))) (defmulti which-color-mm(fn [mf](:color m)) ) (defmethod wh ..
发布时间:2016-11-27 19:09:34 其他开发语言

Clojure多方法vs.协议

我是一个Clojure新手,正在寻找一些具体的例子,当什么时候使用协议和何时使用多方法。我知道协议通常面向创建类型层次结构和典型的OOP事情,他们被添加到语言后多方法,并且协议一般有更好的性能,所以我的问题是: 协议是否代替多方法?如果没有,你能给我一个例子,我将使用多方法而不是协议? 解决方案 功能强大且更昂贵, 在足够时使用协议,但如果您需要根据月球的阶段那么多方法是你最好 ..
发布时间:2016-11-27 17:13:24 其他开发语言

Clojure中的协议和多方法比Haskell中的类型类更不强大的原因是什么?

更广泛地说,这个问题是关于表达式问题的各种方法。这个想法是你的程序是一个数据类型和操作的组合。我们希望能够添加新的案例而不需要重新编译旧的类。 现在Haskell有一些非常棒的解决方案,表达式问题与 TypeClass 。特别是 - 我们可以做: class Eq a其中 (==):: a - > a - > Bool (/ =):: a - > a - > Bool ..
发布时间:2016-11-27 16:59:32 其他开发语言

如果" .NET 4.0优化代码重构现有的"条件和与QUOT;是"操作者

我有以下的C#代码。它工作正常;但 GetDestination()方法是堆满了多个如果条件使用的是运营商。 在.NET 4.0(或更高版本)是什么,以避免这些“如果”条件呢? 编辑:角色是商业模型的一部分​​,而目的地是纯粹使用商业模型中的一个特定的应用程序的一个工件 码 公共类角色{} 公共类经理:角色{} 公共类会计师:角色{} 公共类Attender:角色{} ..
发布时间:2016-09-19 12:17:07 C#/.NET