I'm working on a subpatch that receives messages in a simple script syntax to be interpreted as actions to execute. I'm using [route] a lot to guide the logic tree word by word from beginning of each "sentence" (list message) received. [route] checks the first item of an input list against its creation arguments (sort of like [select]) for a match. If the first item in the list matches one of [route]'s creation arguments, the first item is removed and the rest of the list is output through a corresponding [route] outlet. This works great for my purposes, but sometimes it would be nice to remove the first item from the list regardless of its value. Some words in each sentence are unnecessary, or don't contain any new or important information because the syntax of the script is designed for ease of use and natural-sounding "sentences".
I've tried a few approaches to removing the first element.
For example, this technique works just fine if you know the number of remaining terms, but the syntax is flexible, so the logic tree won't always know :
[r SentenceSoFar] (I'm not using this send/receive scheme, it's here for clarity)
\
[ $2 $3 $4 $5 $6 $7 <
/
I can use [prepend] to add an element as the first in a list, but it obviously won't remove an element.
It seems like this a pretty simple thing to want to do, and there might be an object for it (I'm using Pd-extended, by the way) or perhaps just a simple trick I'm missing...