- Syntax
- Parser modifications
- Representation
- Objects and data to represent feature
- Parsing
- Modify reader/printer
- AST -> read feature
- Semantics
- Evaluation and manipulation
- When writing a builtin operation remember to operate on the ARGUMENTS of the lval that’s passed in. This usually involves popping them off the lval first.
- Remember to delete the container lval that runs the builtin function before returning the newly created lval that’s inside to replace it.
- What is the logic behind who destroys variables and frees their memory? Still don’t fully grasp this.
- Possibly make a version of this in Rust/Go to learn those langs!
- possibly expand standard lib to include stuff from other lisps
- how could we make an object model in here?
- implement same Lang in a different lisp