Hi Alex

>Is it that you want more than one expression in the true-clause

YESSS EXACTLY THAT
Thank you very much for 'prog'...I had no idea re it's existence.

Also thank you for putting me straight re ifn (car Ele)
i.e. I just fiddled until I got some differentiation between an atom and
list.

Best Regards
Dean



On 9 December 2016 at 21:07, Alexander Burger <a...@software-lab.de> wrote:

> Hi Dean,
>
> On Fri, Dec 09, 2016 at 08:21:54PM +0000, dean wrote:
> > #{
> > " is atom -- undefined if I wrap,,, prinl Ele " is atom"
> >   in yet another set of brackets
> >   i.e. it's already inside 4 sets of brackets
> >   inside the function lmnu_to_mnu_tbl().
> >   The only reason I did the last enclosing brackets was that I wanted to
> add
> >   some additional statements after the print statement
> >   so how would you do that i.e. what are the rules
> >   'cos at present I just put brackets around what I view as distinct
> > operations.
> > ....
> > (de lmnu_to_mnu_tbl (L Lkey)
> >    (for Ele L
> >         (
> >          if (== (car Ele) Nil)
> >          (
> >             # " is atom" undefined if I include this last set of brackets
> >             #(prinl Ele " is atom")
> > #<-------i.e.
> >             prinl Ele " is atom"                        #by contrast this
> > is fine
> >          )
> >          (
> >             prinl Ele " is list"
> >          )
> >         )
> >    )
> > )
>
> Hmm, OK. Where exactly do you want to put brackets, and why?
>
> Do you mean
>
>    (if ...
>       ((prinl ...)) ?
>
> Note that this says "obtain the function by evaluating (prinl ...)",
> because the
> CAR (i.e. the expected function) of the expression
>
>    ((prinl ...))
>
> is
>
>    (prinl ...)
>
> which is probably not what you mean.
>
>
> Is it that you want more than one expression in the true-clause of 'if'?
> Then
> you could use 'prog'
>
>    (if ...
>       (prog
>          (prinl ...)
>          (doSomething) )
>       (doSomeThingElse) )
>
>
> Also, note that
>
>    (== (car Ele) Nil)
>
> is a bit strange. The symbol 'Nil' is not bound, may just by chance be NIL.
> Then, comparing with NIL is superfluous. Insted of
>
>    (if (== (car Ele) NIL)
>
> you better write
>
>    (if (not (car Ele))
>
> or optimally
>
>    (ifn (car Ele)
>
> Cheers,
> - Alex
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>

Reply via email to