Built interpreters, encoders, and simple games using Racket.
- Used recursion, higher-order functions, and immutability.
- Preferred composition over control flow.
- Simulated logic and arithmetic with pure functions.
- Built parsers and evaluators from scratch.
- Used pattern matching with lists, hashes, and trees.
- Wrote modular tests and traced recursive logic.
- Structured clean, readable, and modular code.
- Used branches, commits, and shell scripting.