Initial commit - fix problems & refactor code

This commit is contained in:
2025-12-22 19:10:46 +03:00
commit ff36917cb5
39 changed files with 1499 additions and 0 deletions
View File
+26
View File
@@ -0,0 +1,26 @@
from typing import Any
from core.exceptions import syntaxError
# from core.printer import Representation
class LinkedList:
value = None
nxt = None
def __init__(self, value_, nxt_):
self.value = value_
self.nxt = nxt_
def car(lst):
return lst.value
def cdr(lst):
return lst.nxt
def cons(val, lst):
return LinkedList(val, lst)
def isList(val):
return isinstance(val, LinkedList)
NIL = cons(None, None)
+25
View File
@@ -0,0 +1,25 @@
from functools import lru_cache
class Symbol:
_name: str
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name
@lru_cache(maxsize=None)
def symbol(name: str) -> Symbol:
return Symbol(name)
def symbolName(sym: Symbol) -> str:
# return sym.name[1:]
return sym.name
def symbolKey(sym: Symbol) -> str:
return sym.name
def isSymbol(obj) -> bool:
return isinstance(obj, Symbol)