add quote

This commit is contained in:
vonhyou 2021-04-14 09:10:49 +08:00
parent 3cb684840a
commit b3adb30967

View file

@ -72,6 +72,7 @@ def generate_env
'car': ->(arr) { arr[0] }, 'car': ->(arr) { arr[0] },
'cdr': ->(arr) { arr[1..-1] }, 'cdr': ->(arr) { arr[1..-1] },
'cons': ->(arr) { arr }, 'cons': ->(arr) { arr },
'quote': ->(arr) { arr },
'print': ->(arg) { p arg }, 'print': ->(arg) { p arg },
'begin': ->(*_args) { true } 'begin': ->(*_args) { true }
} }
@ -89,7 +90,7 @@ end
$global_env = generate_env $global_env = generate_env
def lisp_eval(elem, env = $global_env) def lisp_eval(elem, env = $global_env)
if elem.instance_of?(Symbol) if elem.instance_of? Symbol
env[elem] env[elem]
elsif elem.instance_of?(Integer) || elem.instance_of?(Float) elsif elem.instance_of?(Integer) || elem.instance_of?(Float)
elem elem
@ -128,4 +129,4 @@ def print_value(value)
end end
repl() repl()
# lisp_eval(parse('(begin (def var1 7) (if (> var1 8) (+ 3 11) (/ 7 3)))')) # p lisp_eval(parse('(if (> 7 8) (+ 3 11) (/ 7 3))'))