> I guess it was not intended to operate on a list of tiddlers.

It's implemented like any other filter operator, taking an input list and 
producing an output list.

> I think it should rather be *[has[type]each[type]get[type]*... not 
returning blanks.

But *get* never returns blanks, although *each* does return tiddlers in 
which the field in question is blank. So on tiddlywiki.com at present, 
*[each[color]]* returns six titles, whereas *[get[color]]* and 
*[each[get[color]]* return five.

> But perhaps there is a case where you do want specifically declared 
blanks, rather than undefined.

In exploring the *title* operator today, I've discovered that it supports 
negation (previously undocumented). *title[x]* is absolute, ignoring its 
input. But *!title[x]* is relative, and serves to filter out *x* from the 
input. Oddly, though, it doesn't filter out *x* if *x* doesn't exist as a 
tiddler. So we can't use *!title[]* to filter out blanks from other lists.

> I was about to extend *each*, so it does handle list fields

So that, given one tiddler with list *A B C* and another with list *A C E G*, 
it would return *A B C E G*? That sounds like a relative form of the *list* 
operator: *[tag[foo]list:relative[]]*. Or an absolute form of it that 
somehow took a *list* of text references as its parameter.

> Perhaps it should rather be: *[tag[foo]get:list[]]* or *[**tag[foo]*
*get:list[my-list-field]]* with the behaviour you describe

That would also be logical. In fact, the concept of unpacking a list into 
an array is so useful that maybe it deserves its own unsuffixed operator.

– æ

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.

Reply via email to