在编写需要进行谓词分派(如代码分析库)的代码时,使用看起来是这样的模式对invoke
函数非常普遍:
`
(defn classify [x]
(condp invoke x
string? (string-f x ..)
number? (number-f x ..)
..))
`
这完全可以不用invoke
来实现,但是condp invoke
模式读起来更加清晰。
此外,invoke
在有滑动窗口函数和值的情况下也很有用,例如
(apply map invoke funs vals)
补丁: 0001-CLJ-2342-add-invoke.patch