Thanks Alex,
Sure, I'll do a pp in future - also start following that conventions.

About @Gen using @Names - the second argument of mapcan in the definition
of @Gen is essentially @Names. I am looking for a way to avoid having to
repeat the expression (filter ...


(gui

      'query

      '(+QueryChart)

      *ROWS

      '(goal

         '(@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) (member Nm (: nm nm)))

                           (; (-> @@) tgs) ) )

                     (-> @Names) ) ) ) ) )

      1

      '((This) (list This)) )




Regards,
Kashyap

On Wed, Dec 4, 2019 at 3:07 AM Alexander Burger <[email protected]> wrote:

> Hi Kashyap,
>
> On Tue, Dec 03, 2019 at 07:48:58PM -0800, C K Kashyap wrote:
> > I'll need a little bit more help with Pilog in QueryChart - In the code
> > below,
>
> Could you in the future provide code which is formatted in a more readable
> way?
> It is very hard to decipher. Better no spaces between lines, and
> indentations
> and parentheses more to the standard (see the output of 'pretty' and 'pp').
>
> If I try to fix it manually, I get (hope I did not destroy anything):
>
>    (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  # Commented?
>                      '((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))))  # T?
>                               (; (-> @@) tgs) ) )
>                         (-> @Names) ) ) ) ) )
>          1
>          '((This) (list This)) )
>
> (I assume the quotes, T etc. are temporary tests)
>
>
> > I get the tags as a list of space separated words in the *Tags
> > variable.
>
> That's all right, but better may be to use +ListTextField, it directly
> returns a
> list of strings:
>
>    "Tags" (gui 'tags '(+ListTextField) '("," " ") 20)
>
>
> > 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?
>
> Sorry, I don't understand this. In which way does @Gen "use" @Names?
>
> ☺/ A!ex
>
> --
> UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
>

Reply via email to