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