Commit Graph

11 Commits

Author SHA1 Message Date
a45918d203 Added type annotations for the environment module to make things clearer, switched bind_args implementation with a simpler one. 2025-12-28 21:04:45 +03:00
892f47ba5f Reorganized environment-related functions. 2025-12-28 21:04:45 +03:00
c7132325db Added some standard functions 2025-12-28 21:04:45 +03:00
c80d5fd75f reorganized a bit, separated bind-symbol into two operators that have different uses, def and set 2025-12-28 21:04:45 +03:00
Emin Arslan
d0accebf73 Changed the addition and subtraction functions to be clearer 2025-12-28 21:04:45 +03:00
Emin Arslan
9b20547e84 Added def, changed naming, and added if expressions 2025-12-28 21:04:44 +03:00
Emin Arslan
dec68856f3 Evaluation is now performed properly, mimicking Common Lisp, and basic defun and defmacro definitions are provided (automatically executed on startup) 2025-12-28 21:04:44 +03:00
Emin Arslan
bb0ec74ee7 Added builtin special forms, lambda forms and bind-symbol. got rid of bind-function, as it is now unnecessary. it is now possible to create functions! 2025-12-28 21:04:44 +03:00
Emin Arslan
aaafe1c3e6 Re-organized a lot of code, changed functions so that functions capture the surrounding environment and execute in that environment 2025-12-28 21:04:44 +03:00
Emin Arslan
354e9b355b Added bind-function primitive that allows us to define functions, also changed evaluation to allow for a persistent environment 2025-12-28 21:04:44 +03:00
Emin Arslan
4535d57d21 Initial state - basic lexer + parser + interpreter 2025-12-28 21:04:44 +03:00