如何最简单地规范这个函数?特别是指 :fn
部分
(s/def ::edges #{0.149 0.150 0.050})
(s/def ::result #{:correct :incorrect})
(s/fdef foo
:args (s/cat :student-response ::edges :authoritative-answer ::edges)
:ret ::result
:fn ? )
基本上,如果将 student-response
四舍五入到十位与四舍五入到十位的 authoritative-answer
相匹配,则函数返回 :correct
,否则返回 :incorrect
。
我选择了会触及四舍五入边界的值,而不是希望数字的生成过程会偶然发现这些边界。