想要将 Clojure 集合作为组合函数的参数项看起来是合理的。然而,在使用 {{(combinations some-set 1)}} 的例子中,由于 Clojure 的 distinct 函数(在 {{(= t 1)}} 时被调用)不支持集合,因此抛出了一个异常。通过在调用 combinations 之前将集合转换为 seq,可以绕过这个问题。
对于所有其他函数,似乎扩展 {{all-different?}} 以添加一个 {{set?}} 检查可以使函数稍微高效一些(通过避免线性的 {{distinct?}} 扫描)。