【发布时间】:2018-09-11 14:55:52
【问题描述】:
我正在编写一个函数,它采用一系列三角形(实际上表示为maps)。
我的规格是:
(s/fdef triangle-list-to-pattern
:args (s/cat :trs (s/* ::maths/Triangle))
)
该函数接受一个参数,trs,它是一个三角形序列。
但是,当我检测并调用此函数时,出现以下故障:
fails spec: :patterning.maths/Triangle at: [:args :trs] predicate: map?
如果我使用规范明确测试我传递给函数的参数,它就会通过。它实际上只是一系列符合三角形标准的事物。
该功能似乎正在运行。该论点似乎是正确的,并且在单独测试时通过了规范。所以我想我弄错了fdef。
有什么问题?
注意,::Triangle 已定义:
(s/def ::Triangle (s/keys :req-un [::A ::B ::C ::a ::b ::c ::ax ::ay ::bx ::by ::cx ::cy]))
【问题讨论】:
标签: clojure clojure.spec