Commit Graph

19 Commits

Author SHA1 Message Date
64e52cd0cf Added more math operations, generalized and simplified existing math operations, added some list operations for the lisp lists 2025-12-28 21:04:45 +03:00
2f9501450f Reorganized the standard library a little more, moved the initialization code for the standard environment into a function. Making way for more organization changes to come 2025-12-28 21:04:45 +03:00
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
93723be488 Update gitignore 2025-12-28 21:04:45 +03:00
52eee92b7b remove mistaken autosave file 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
3e53f3720f Removed irrelevant comment 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
365595a345 Added dot syntax for lists, and proper quote syntax. LQuoted is now unused 2025-12-28 21:04:44 +03:00
Emin Arslan
df0b3178f0 Improved the repl to return to evaluation upon error. Also added an exit command 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
f9e96b1bd4 General style changes, nothing major 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