I haven't read that [https://interpreterbook.com](https://interpreterbook.com) 
but I've read this instead 
[http://buildyourownlisp.com](http://buildyourownlisp.com) free to read for 
html version

>From the name, it should be obvious that `peek` manipulate the line, taking 
>out the next char while the cursor position is still at it is. Hence its 
>signature `proc (lex: var Lexer): char`

> Does defining the parameter as proc(lex: var Lexer) behave similar to a 
> pointer? This has the result of mutating state in the Lexer object? In other 
> words, it's like passing by reference rather than by value?

Yes

Read @yglukhov informational post on choosing `object` and/or `ref object` 
[https://forum.nim-lang.org/t/3869#24100](https://forum.nim-lang.org/t/3869#24100)

Reply via email to