cost 165 ms
为什么 Common Lisp CLOS 匹配 arguments 是错误的 class 的方法? - Why Common Lisp CLOS matches on a method where the arguments are the wrong class?

我正在尝试学习 CLOS 并遇到了这个惊喜。 我的 arguments 上似乎有 3 个动作方法不匹配。当我运行 tryme function 时,为什么最后一个参数标记为“:c”的动作没有触发预期的错误? 我究竟做错了什么? 还是 SBCL 错误? 怀疑我怀疑我应该在方法定义中使用: (lock ...

当我在 AWS Lamba 中使用多方法装饰器装饰一个函数时,“'module' 对象不可调用” - "'module' object is not callable" when I decorate a function with the multimethod decorator in AWS Lamba

我遇到了一个问题,当我用多方法装饰器装饰一个函数时,lambda 会抛出一个“'module' object is not callable”错误。 我创建了一个任意示例来重现这个问题。 如果我删除装饰器,它就可以工作。 出于某种原因,我的函数一经修饰就被视为模块。 我正在使用层来包含多方法,但 ...

基于 Python 中的关键字参数名称的多方法/调度函数 - Multimethod / dispatch functions based on keyword argument names in Python

编辑#1:我已经按照建议使用“手动”基于 if/else 的解决方案更新了示例,以证明需要进一步自动化。 在基于关键字参数名称而不是类型选择目标 function 的情况下,如何有效地调度函数(即实现类似multimethods的功能)? 我的用例是为数据类实现多个工厂方法,这些数据类的字段相互依赖 ...

“ISA”是怎样的? 基于多方法而不是 instanceof 的语法糖? - How is an “isa?” based multimethod more than syntax sugar for instanceof?

我以clojure 站点为例。 这个功能很酷。 我试图了解为什么这优于(例如)java 中基于实例的实现的技术原因。 在我看来,在 function 中基本上等同,语法更好。 为什么 multimethods 被认为是基于访问者模式的双重调度的一个很好的替代方案,而 instanceof 在它们看 ...

在不同格式的地图上调度函数调用 - Dispatching function calls on different formats of maps

我正在写一个agar.io克隆。 我最近看到了很多限制记录使用的建议(例如here ),所以我试图仅使用基本地图来完成整个项目。 * 我最终为不同的“类型”细菌创建了构造函数,例如 “定向细菌”已添加新条目。 :direction条目将用于记住它的前进方向。 问题是 :我 ...

如何绕过打印方法 - How to bypass print-method

我有一个带有很多大地图和其他东西的应用程序,打印时笨拙,因此我为它们制作了一个自定义打印功能,并设置了print-method来调用它,如下所示: 在fstr1内部,如果确定映射不是需要特殊处理的类型之一,该如何调用普通的打印方法? 这个答案建议在元数据中放置一个:type ,因为 ...

为什么 Perl 6 Str 扮演 Positional 角色,我该如何更改 []? - Why does a Perl 6 Str do the Positional role, and how can I change []?

我正在使用字符串的位置接口。 我知道如何像 Python 在 Perl 6 中那样对字符串进行切片? ,但我很好奇我是否可以让这个东西只为咯咯笑而工作。 我想出了这个例子。 阅读位置很好,但我不知道如何设置multi来处理任务: 最后一个不起作用: 不过,我不认为它会起作用。 我不知道它 ...

Perl 6对象如何找到可能在父类或角色中的多方法? - How does a Perl 6 object find a multi method that might be in a parent class or role?

考虑这个例子,其中子类有一个没有签名的multi方法和一个带有slurpy参数的方法: 方法查找是如何构建的? 我正在寻找一种方法来解释它,特别是没有抱怨它。 有一个呼叫Bar的do-it用1的实例。 一些合理的人可能会认为它首先在Bar寻找匹配的签名,并且该漏洞将永远不会让 ...

Java接口上的Clojure Multimethod调度 - Clojure Multimethod dispatch on Java interface

假设我有一个Java方法可返回某个父接口的对象。 此函数返回的对象的类未记录,但是存在丰富且记录良好的接口层次结构,这些结构都扩展了父接口。 因此,例如: 如果我知道底层对象(并且对底层对象的稳定性有信心),则可以编写一种多方法来分派该方法返回的各种对象: 但是,由于只有接口 ...

功能在多个调度系统中是否可变? - Are functions mutable in multiple dispatch systems?

我是否正确理解,以(大多数还是某些?)多种调度语言,每个方法都会在程序执行的某个时间点添加到函数中 。 然后我是否可以得出结论,将多个调度作为功能强制功能是可变的? 是否存在多种调度语言,其中所有方法都在加载时(附加功能)一起附加到(泛型)函数,所以不可能在不同的时间点看到处于不同状 ...

使用跨多个名称空间定义的Clojure多方法 - Using Clojure multimethods defined across multiple namespaces

虽然下面的例子看起来有点奇怪,但这是因为我试图减少我目前得到的一个相当大的问题。 当他们坐在几个抽象层后面并且在多个名称空间中定义了defmulti和相应的defmethods时,我正在努力研究如何调用多方法。 我真的觉得我错过了一些明显的东西...... 假设我有以下场景: ...

停止方法调用:after - Stopping the method from calling :after

说我有一个类似下面的代码设置 现在让我们说我想将太空飞船移到某个位置,但是燃料计算结果导致飞船上的燃料量为负(即旅行所需的燃料不足)。 那么,有没有一种方法可以防止:after限定符被调用而不必发信号通知错误情况? 如果我不停止通话,该船将被移至新位置,而不会减少任何燃料,这 ...

Clojure mutimethods按类型发送 - Clojure mutimethods for dispatch by type

我在clojure中实现了快速功率算法: 现在我想玩类型提示和java互操作。 我想这样做是因为在clojure中更好地理解所有这些“java东西”。 它看起来很容易,但实际上存在很多隐藏的障碍。 所以,我写道: 当然,由于错误的arity问题,它甚至没有编译。 所以我谷 ...

Nim - 创建实现方法的对象序列 - Nim - Create sequence of objects which implement a method

我想编写一个游戏,并想为多个实体使用一个组件模式。 在具有接口/类型类/多重继承的语言中,没有问题。 我希望某些实体可更新但不可渲染,而有些则两者兼而有之。 哈斯克尔: 我可以创建一个可以更新的事物列表。 在 Java/D/... 这可以通过接口实现 现在我想知道如何使用多方法 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM