gpt4 book ai didi

clojure - 在 Clojure 中,如何将多个参数传递给 defmethod?

转载 作者:行者123 更新时间:2023-12-03 00:36:24 27 4
gpt4 key购买 nike

我希望创建一个多重方法,如下所示:

(defmethod some-method "some value"
[ a b ]
b)

:但仅根据第一个参数“a”选择函数。我该怎么做:

(defmulti some-method
WHAT GOES HERE?)

最佳答案

我没有完全理解你的问题,但我想你想仅针对一个参数进行分派(dispatch)。我认为你可以这样做:

user=> (defmulti even-or-odd (fn [x _] (even? x)))
#'user/even-or-odd
user=> (defmethod even-or-odd true [a _] :even)
#<MultiFn clojure.lang.MultiFn@293bdd36>
user=> (defmethod even-or-odd false [a _] :odd)
#<MultiFn clojure.lang.MultiFn@293bdd36>
user=> (even-or-odd 2 3)
:even
user=> (even-or-odd 3 3)
:odd
user=>

关于clojure - 在 Clojure 中,如何将多个参数传递给 defmethod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5570891/

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