Hi Alex,
I'll need a little bit more help with Pilog in QueryChart - In the code
below, I get the tags as a list of space separated words in the *Tags
variable. I create the @Names and @Gen pilog variables using *Tags. As you
can see @Gen uses @Names inside it but I am not sure how to reuse the
definition of @Names inside the definition of @Gen. I tried wrapping the
whole "gui" call inside a let binding but that does not seem to work
either. What's the way out?
(diaform '(Dst)
(<grid> "--"
"Name" (gui 'ttl '(+DbHint +Var +TextField) '(ttl
+Task) '*Name 20)
"Tags" (gui 'tags '(+Var +TextField) '*Tags 20)
(searchButton '(init> (: home query)))
)
(gui 'query '(+QueryChart) *ROWS
'(goal
(quote
@Names (filter '((X) X) (mapcar '((X)
(uppc (pack X))) (split (chop *Tags) " ")))
@Gen (mapcan '((Nm) (list 'nm '+TagNm Nm))
'(filter '((X) X) (mapcar '((X) (uppc (pack X))) (split (chop *Tags) "
"))))
(select (@@)
((@Gen (nm +Tag) tsk))
(^ @
(fully
'((Nm)
(find
'((This) (or T (member
Nm (: nm nm))))
(; (-> @@) tgs) ) )
(-> @Names) ) )
)
)
)
1
'((This) (list This))
)
On Fri, Nov 29, 2019 at 7:31 AM C K Kashyap <[email protected]> wrote:
> Oh yes! got it.
> Regards,
> Kashyap
>
> On Thu, Nov 28, 2019 at 11:10 PM Alexander Burger <[email protected]>
> wrote:
>
>> On Thu, Nov 28, 2019 at 01:30:26PM +0100, Alexander Burger wrote:
>> > (de f (Names)
>> > (pilog
>> > (quote
>> > @Names Names
>> > @Gen (mapcan '((Nm) (list 'nm '+TagVal Nm)) Names)
>> > (select (@Item)
>> > ((@Gen (v +Tag) itm))
>> > ...
>>
>> Haha, it just occurs to me that we made a stupid mistake!
>>
>> As we are searching for objects that have ALL names (i.e. an AND of all
>> names in
>> the list), searching the index multiple times (once for each element in
>> the
>> list) in very inefficient and unnecessary :)
>>
>> Instead, we can pick any element of the list, e.g. the CAR:
>>
>> (de f (Names)
>> (pilog
>> (quote
>> @Names Names
>> @Key (car Names)
>> (select (@Item)
>> ((nm +TagVal @Key (v +Tag) itm))
>> ...
>>
>> ☺/ A!ex
>>
>> --
>> UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
>>
>