对clojure.core/fn的调用不符合规范

对clojure.core/fn的调用不符合规范,clojure,Clojure,我收到了这样的信息: 线程“main”clojure.lang.ExceptionInfo中的异常:对clojure.core/fn的调用不符合规范: 在:[0]val:((int p1_u148#)48)中,spec::clojure.core.specs.alpha/arg-list在以下位置失败:[:args:bs:arity-1:args]谓词:vector? 在:[0]val:-未能通过spec::clojure.core.specs.alpha/arg-list,位置:[:args:

我收到了这样的信息:

线程“main”clojure.lang.ExceptionInfo中的异常:对clojure.core/fn的调用不符合规范: 在:[0]val:((int p1_u148#)48)中,spec::clojure.core.specs.alpha/arg-list在以下位置失败:[:args:bs:arity-1:args]谓词:vector? 在:[0]val:-未能通过spec::clojure.core.specs.alpha/arg-list,位置:[:args:bs:arity-n:args]谓词:vector? #:clojure.spec.alpha{:problems({:path[:args:bs:arity-1:args],:pred clojure.core/vector?,:val(-(int p1_148;)48),:via[:clojure.core.specs.alpha/args+body:clojure.core.specs.alpha/arg-list:clojure.core.specs.alpha/arg-list],:in[0]}{:path[:args:bs:arity-n:args],:pred clojure.core/vector-,:via-[:clojure.core.specs.alpha/args+body:clojure.core.specs.alpha/args+body:clojure.core.specs.alpha/arg-list:clojure.core.specs.alpha/arg-list],:in[0],:spec#object[clojure.spec.alpha$regex\u spec\u impl$refy\u2436 0x58faa93b“clojure.spec.alpha$regex\expl\refy”__2436@58faa93b“],:值(-(intp1_uu148#)48)[x](*x)),args((((intp1_u148#)48)[x](*x)),编译:(/Users/hassan/Desktop/fourclojure/src/fourclojure/120.clj:8:31) 位于clojure.lang.Compiler.checkSpecs(Compiler.java:6891) 位于clojure.lang.Compiler.macroexpand1(Compiler.java:6907) 位于clojure.lang.Compiler.analyzeSeq(Compiler.java:6989) 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 位于clojure.lang.Compiler.analyzeSeq(Compiler.java:6991) 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 位于clojure.lang.Compiler.analyze(Compiler.java:6729) 位于clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6100) 位于clojure.lang.Compiler$FnMethod.parse(Compiler.java:5460) 位于clojure.lang.Compiler$FnExpr.parse(Compiler.java:4022) 在clojure.lang.Compiler.analyzeSeq(Compiler.java:7001)中 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 位于clojure.lang.Compiler.analyze(Compiler.java:6729) 位于clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3881) 在clojure.lang.Compiler.analyzeSeq(Compiler.java:7005)上 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 位于clojure.lang.Compiler.analyze(Compiler.java:6729) 位于clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3881) 在clojure.lang.Compiler.analyzeSeq(Compiler.java:7005)上 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 位于clojure.lang.Compiler.analyzeSeq(Compiler.java:6991) 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 位于clojure.lang.Compiler.analyze(Compiler.java:6729) 位于clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6100) 位于clojure.lang.Compiler$FnMethod.parse(Compiler.java:5460) 位于clojure.lang.Compiler$FnExpr.parse(Compiler.java:4022) 在clojure.lang.Compiler.analyzeSeq(Compiler.java:7001)中 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 位于clojure.lang.Compiler.analyzeSeq(Compiler.java:6991) 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 在clojure.lang.Compiler.access$300(Compiler.java:38) 位于clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:595) 位于clojure.lang.Compiler.analyzeSeq(Compiler.java:7003) 位于clojure.lang.Compiler.analyze(Compiler.java:6773) 位于clojure.lang.Compiler.analyze(Compiler.java:6729) 位于clojure.lang.Compiler.eval(Compiler.java:7066) 加载(Compiler.java:7514) 位于clojure.lang.Compiler.loadFile(Compiler.java:7452) 在clojure.main$load_script.invokeStatic(main.clj:278) 在clojure.main$script_opt.invokeStatic(main.clj:338) 在clojure.main$script_opt.invoke(main.clj:333) 在clojure.main$main.invokeStatic(main.clj:424) 在clojure.main$main.doInvoke(main.clj:387) 位于clojure.lang.RestFn.applyTo(RestFn.java:137) 在clojure.lang.Var.applyTo(Var.java:702) 在clojure.main.main(main.java:37) 原因:clojure.lang.ExceptionInfo:对clojure.core/fn的调用不符合规范: 在:[0]val:((int p1_u148#)48)中,spec::clojure.core.specs.alpha/arg-list在以下位置失败:[:args:bs:arity-1:args]谓词:vector? 在:[0]val:-未能通过spec::clojure.core.specs.alpha/arg-list,位置:[:args:bs:arity-n:args]谓词:vector? {:clojure.spec.alpha/problems({:path[:args:bs:arity-1:args],:pred-clojure.core/vector?,:val(-(int-p1_148;)48),:via[:clojure.core.specs.alpha/args+body:clojure.core.specs.alpha/arg-list:clojure.core.specs.alpha/arg-list],:in[0]}{:path[:args:bs:arity-n:args],:pred-clojure.core/vector-,:via-,:via-[:clojure.core.specs.alpha/args+body:clojure.core.specs.alpha/args+body:clojure.core.specs.alpha/arg-list:clojure.core.specs.alpha/arg-list],:in[0],:clojure.spec.alpha/spec/spec#对象[clojure.spec.spec.alpha$regex\u spec\u impl$refy\u2436 0x58faa93b“clojure.spec.spec.alpha\regu$refy”__2436@58faa93b"],:clojure.spec.alpha/value(((int-p1_u148#)48)[x](*x)),:clojure.spec.alpha/args(((int-p1_u148#)48)[x](*x))} 在clojure.core$ex_info.invokeStatic(core.clj:4739) 在clojure.core$ex_info.invoke(core.clj:4739) 在clojure.spec.alpha$macroexpand\u check.invokeStatic(alpha.clj:689) 在clojure.spec.alpha$macroexpand\u check.invoke中(alpha.clj:681) 位于clojure.lang.AFn.applyToHelper(AFn.java:156) 在clojure.lang.AFn.applyTo(AFn.java:144) 在clojure.lang.Var.applyTo(Var.java:702) 位于clojure.lang.Compiler.checkSpecs(Compiler.java:6889) …还有45个

当我运行此代码时:

(定义计数小于平方[l]
(->>
L
(地图(fn[n](>>n
str
(map#(>%int(-48)(fn[x](*x)));问题是fn
(减少+)
(列表n)
(过滤器#(<(第一个%(第二个%))
计数)
但是,当我这样运行它时:

(defn-pow[ab](减少*1(重复b-a)))
(定义计数小于平方[l]
(->>
L
(地图(fn[n](>>n
str
(地图(>%int(-48)(战力2)))
(减少+)
(列表n)
(过滤器#(<(第一个%(第二个%))
计数)
(pp/ppri)
(map #(-> % int
          (- 48)
          (fn [x] (* x x))))
(map #(fn
        (- (int %) 48)
        [x]
        (* x x)))
fails spec: :clojure.core.specs.alpha/arg-list at: [:args :bs :arity-1 :args] predicate: vector?