
Le 19/04/2019 à 19:31, Albert Y. C. Lai a écrit :
I am late to this discussion but here is my solution.
This is really just story-telling to end-users.
The real story you want to tell everyone is this: "x && y && z && t" means Scheme's "(and x y z t)", and it means you try the sequence from left to right, stopping at the first incident of "false". /.../ As many of you have observed, it doesn't matter, a compiler writer already knows it's "(and x y z t)" and generates the correct code and not bother to split hair.
Very, ehm, interesting methodology... I suspect that you missed that part of the discussion where people discussed parsing. I don't know if you ever taught compilation, but imagine that your students ask you: */HOW /**/"x && y && z && t" is transformed into /**/"(and x y z t)" ?/* Will your answer be: */it doesn't matter, a compiler writer already knows it's "(and x y z t)" and generates the correct code and not bother to split hair/* Everybody will be happy. Bon courage. Jerzy Karczmarczuk */ /*