似乎将 clojure 集合用作组合函数的项参数是很合理的。然而,在{{(combinations some-set 1)}}的情况下,由于 Clojure 的 distinct 函数(在={{(= t 1)}}时调用)不支持集合,因此抛出异常。通过在调用 combinations 之前将集合转换为 seq,可以解决这个问题。
对于所有其他函数,通过在 {{all-different?}} 中添加一个 {{set?}} 检查,可以使函数的效率略有提高(通过避免线性的 {{distinct?}} 扫描)。