On Wed, Nov 25, 2015 at 10:45 PM, Ludovic Courtès <l...@gnu.org> wrote: > Federico Beffa <be...@ieee.org> skribis:
[...] >>>> + ;; indentation based block recognition. >>>> + (begin (unread-char #\newline port) (read-char port) 0) >>> >>> Isn’t this equivalent to: 0 ? >> >> No. This is because at the start of a new line we check if and how >> many indentation blocks have ended. If the last line doesn't terminate >> this check is no done. > > More generally, it looks like: > > (begin (do-effect!) (undo-effect!) val) > > which I thought reduces to: > > val Since we are doing IO, there are side effects. The key difference is the result of '(port-column port)' and that triggers what I mentioned. Thanks for the review. Regards, Fede