当编写需要进行谓词分派的代码(如代码分析库)时,需要一个类似于.invoke
的模式的函数是相当常见的
`
(defn classify [x]
(condp invoke x
string? (string-f x ..)
number? (number-f x ..)
..))
`
这肯定可以用invoke
表达,但.condp invoke
模式读起来很顺畅。
此外,.code>在有一个函数和值的滑动窗口情况下也很有用,例如
(apply map invoke funs vals)
补丁: 0001-CLJ-2342-add-invoke.patch