目前,Clojure 允许使用包含 &rest 参数的解构模式
user=> (let [[a b & c] (range 5)] [a b c])
[0 1 (2 3 4)]
Python 也可以这么做,同时也允许把所谓的通配符放置在前面和中间位置(PEP 描述)
>>> a, *b, c = range(5)
>>> a
0
>>> c
4
>>> b
[1, 2, 3]
这在 Clojure 中曾考虑过类似的处理吗?可能看起来是这样
user=> (let [[a & b c] (range 5)] [a b c])
[0 (1 2 3) 4]
我觉得这应该可以用现在核心函数的解构方式实现,但是也可能是我不知道一些细微之处。