Oh! ... now I see the spacing problem .. sorry about that, I think it must
be the result of copying from the terminal and pasting.
The last proposal was perfect - indeed it works just fine for tags (I've
tried different pasting this time).
(de choTask (Dst)
(diaform '(Dst)
(<grid> "--"
"Name" (gui 'ttl '(+DbHint +Var +TextField) '(ttl
+Task) '*Name 20)
"Tags" (gui 'tags '(+Var +ListTextField) '*Tags
'(","," ") 20)
(searchButton '(init> (: home query)))
)
(gui 'query '(+QueryChart) *ROWS
'(goal
'(
@Names (filter '((X) X) (mapcar '((X) (uppc (pack
X))) *Tags))
@Key (car (filter '((X) X) (mapcar '((X) (uppc
(pack X))) *Tags)))
(select (@@)
((nm +TagNm @Key (nm +Tag) tsk))
(^ @
(fully
'((Nm)
(find
'((This) (member Nm (: nm nm)))
(; (-> @@) tgs) ) )
(-> @Names) ) )
The question I have now is about cases where we may need a couple of pilog
variables of the form -
@Names XXX
@Gen (mapcan '((Nm) (list 'nm '+TagNm Nm)) 'XXX)
where XXX needs to be substituted with an expression - (filter '((X) X)
(mapcar '((X) (uppc (pack X))) *Tags))) in this case. As I was
experimenting for writing this email, using function calls to do the
"substitution" seems to work. For some reason, it was not working for me
when I tried yesterday.
This seems to work too -
'(
@Names (YY)
@Gen (mapcan '((Nm) (list 'nm '+TagNm Nm)) '(YY T))
(select (@@)
((@Gen (nm +Tag) tsk))
(^ @
(fully
'((Nm)
(find
'((This) (member Nm (: nm nm)))
(; (-> @@) tgs) ) )
(-> @Names) ) )
)
)
where YY is defined as -
(de YY (QT)
(filter '((X) X) (mapcar '((X) (uppc (pack X))) *Tags)))
One thing odd I find is that the code "does not work" when I call YY with
NIL or without an argument in the second case (@Gen)
I think I'll have to do some more experiments to come up with precise
questions. In the meantime, the tags logic works for me :)
Regards,
Kashyap
On Wed, Dec 4, 2019 at 10:53 PM Alexander Burger <[email protected]>
wrote:
> On Wed, Dec 04, 2019 at 02:32:57PM -0800, C K Kashyap wrote:
> > (patch choTask 'XXX '(filter '((X) X) (mapcar '((X) (uppc (pack X)))
> > *Tags)))
> > ...
>
> I do not understand your intention. I thougt you wanted an AND of all
> tags, so
> the @Gen generator was obsolete.
>
> My last proposal was:
>
> (de f (Names)
> (pilog
> (quote
> @Names Names
> @Key (car Names)
> (select (@Item)
> ((nm +TagVal @Key (v +Tag) itm))
> (^ @
> (fully
> '((Nm)
> (find
> '((This) (member Nm (: v nm)))
> (; (-> @Item) tgs) ) )
> (-> @Names) ) ) ) )
> (print-item @Item) ) )
>
> (f '("RED" "BLUE"))
>
> What was wrong with it?
>
> ☺/ A!ex
>
> --
> UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
>