Hi Kashyap,

> 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.

Yeah, this should be no general problem. In all those patterns

   @Var (expression)

(expression) is an arbitrary Lisp expression, so you are completely free to call
other functions etc.


> 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 -

Well, in the above @Gen expression, 'YY' is used as a *name* in the quoted list,
so it does not matter if and how it is defined.

Or is the quote wrong?


> (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)

The 'QT' parameter is ignored anyway.

Side note: Why do you filter with a no-op function? Or is this just a
placeholder for testing?


☺/ A!ex

-- 
UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe

Reply via email to