Federico Beffa <[email protected]> skribis: > On Wed, Nov 25, 2015 at 10:45 PM, Ludovic Courtès <[email protected]> wrote: >> Federico Beffa <[email protected]> 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.
Oooh, I see, thanks for explaining! Then what about a comment like: Read a newline from PORT to reset its ‘port-column’, as expected by the indentation-based block recognition code. I think it would be helpful for those like me who are hard of hearing. ;-) Ludo’.
