IOhannes zmölnig escribió:
Matteo Sisti Sette wrote:
Jonathan Wilkes escribió:
, I think it's best to say that it always outputs messages with the "list" selector,
Except [list trim], of course
almost.
[bang( | [list append] | [list trim] | ??
The answer is "bang". Or "list", that is the same.
The question shouldn't be whether a message has or doesn't have the list identifier: the question should be what the message is. "list foo" and "symbol foo" are the same message; whether they are represented in one or the other way is (or should be) a matter of internal representation, irrelevant to the user. "list foo" _is_ a symbol (and it _is_ a list). "symbol foo" _is_ a list (and it _is_ a symbol). The same holds for "list" and "bang", which both represent the empty list, or the bang which is the very same thing.
So, [bang(->[list append] appends the empty list to the empty list, producing an empty list, or a bang, that is the same. Then "list"->[list trim], or "bang"->[list trim] that is the same, tries to strip the list identifier from the empty list, obtaining an empty message, which again is equivalent to a bang (a completely empty message does not exist), so the output of your example is "bang", or "list", which is the same. Indeed if you feed it to a [print] it will print "bang". Is it 'written' as "list" or as "bang"? Who cares? It won't ever do any difference in any patch, and if it does, it is because of some bug.