Got it! ... thank you so much Alex!
The (X Y . Z) and the @ scenarios fill the gap in my understanding!
Regards,
Kashyap

On Wed, Oct 13, 2021 at 7:11 AM Alexander Burger <a...@software-lab.de>
wrote:

> Hi Kashyap,
>
> > I was going over the evExpr functions in miniPicoLisp/PicoLisp 32 and
> had a
> > couple of questions -
> >
> > If I understand correctly - if (isNil(y)) block deals with expressions
> such
> > as
> > (F 1 2) where F => (de F (X Y) (+ X Y)) and the else if (y != At) block
> > deals with the scenario where F => (de F X (for I X (prinl I))) .
>
> Correct, but the latter deals also with
>
>    (de F (A B C . X) ...
>
> because A, B and C are eaten up by the while (isCell(y)) above.
>
>
> > My questions are as follows -
> >
> > 1. Why do we have this block of code? It seems to evaluate the args which
> > is only used in the if(isNil(y)) block.
>
>
> No, it does not evaluate. Evaluation took place already in the loop above

Reply via email to