gpt4 book ai didi

clojure - 多方法的通用语法

转载 作者:行者123 更新时间:2023-12-04 06:43:58 29 4
gpt4 key购买 nike

如果这个问题无关紧要,我深表歉意,但有些谷歌搜索并没有把我引向任何地方。 defmultidefmethod的一般语法是什么?我可以编写简单的多方法,但不确定在哪里可以放置文档字符串,条件的前后,元数据等。

实际上,我对ClojureScript的兴趣要大于对Clojure的兴趣,因此,如果两者之间存在差异,请告诉我。

最佳答案

在REPL中,您可以使用doc函数获取函数参数和(大多数情况下)选项的说明。至于ClojureScript,这两个函数是宏,这意味着它们在编译时会被扩展,并且其行为应与常规Clojure中的行为完全相同。也就是说,只要ClojureScript可以处理宏生成的代码。

user=> (doc defmulti)
-------------------------
clojure.core/defmulti
([name docstring? attr-map? dispatch-fn & options])
Macro
Creates a new multimethod with the associated dispatch function.
The docstring and attribute-map are optional.

Options are key-value pairs and may be one of:
:default the default dispatch value, defaults to :default
:hierarchy the isa? hierarchy to use for dispatching
defaults to the global hierarchy
nil
user=> (doc defmethod)
-------------------------
clojure.core/defmethod
([multifn dispatch-val & fn-tail])
Macro
Creates and installs a new method of multimethod associated with dispatch-value.
nil

关于clojure - 多方法的通用语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9960220/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com