目前,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]
我觉得这可能会根据当前核心函数的解构方式实现,但也许我并不知道某个细微之处。