Stefan Monnier writes: >> Yes. My idea of it was that you bind a sequence like the following: >> (seq [a b [c d]]) > > I was thinking of (seq a b (seq c d)). > > You could add support for (seq a b [c d]), if you want since that > currently wouldn't collide with any pcase pattern, tho I'm not sure it's > worth the added complexity for the user. > >> But then how can I have `seq-let' work the way it did until now? For >> instance: >> (seq-let [a [b [c]]] my-vector >> ...) > > You expand [a [b [c]]] to (seq a (seq b (seq c))) before passing it to > pcase-let. > >>>> + (push `(app (seq--reverse-args #'seq--nested-elt >>>> + (reverse (cons ,index ',nested-indexes))) >>>> + ,name) >>> This reverse plus seq--reverse-args business seems >>> hideously inefficient. Why do you need that? >> because of the way the `app' pattern works. Or maybe I'm missing >> something? > > Why wouldn't > > `(app (seq--nested-elt ',(reverse (cons index nested-indexes))) ,name) > > work as well? Or, once you get rid of the nested case, > > `(app (seq-elt ,index) ,name) I understand what you meant now. It indeed makes sense, and the pcase pattern would be much more consistent. I'll push another commit. Cheers, Nico > > > -- Stefan -- Nicolas Petton http://nicolas-petton.fr