这个函数的最简单规范方法是什么?具体来说是: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
。
我选择了会触及四舍五入边界的值,而不是寄希望于数字生成过程会偶然触碰到这些边界。