下面是地图编辑的函数定义。
(def map-edit
(fn [m lst k f]
(if (car lst)
(assoc m
(car lst)
(map-edit (get m (car lst) {}) k f))
(assoc m k (f (get m k))))))当我试图在repl中调用这个函数时
(map-edit {} (list "oeu") "oeuoeu" (fn [q] "oeu"))我犯了一个错误
ArityException Wrong number of args (3) passed to: core/map-edit clojure.lang.AFn.throwArity (AFn.java:429)为何我只提出3项论据呢?
; CIDER 0.8.2 (Java 1.8.0_121, Clojure 1.8.0, nREPL 0.2.12)发布于 2017-06-03 04:17:42
假设您有这些定义
(def car first)
(def cdr rest)映射编辑的递归调用仅使用3个参数。
这句话可能应该是
(map-edit (get m (car lst) {}) (cdr lst) k f))https://stackoverflow.com/questions/44340108
复制相似问题