lis.py: added 'define' procedure short form
This commit is contained in:
parent
0cbb0c557c
commit
e5173fb72b
@ -151,12 +151,12 @@ def evaluate(x: Expression, env: Environment) -> Any:
|
||||
case ['if', test, conseq, alt]: # (if test conseq alt)
|
||||
exp = conseq if evaluate(test, env) else alt
|
||||
return evaluate(exp, env)
|
||||
case ['lambda', parms, body]: # (lambda (parm...) body)
|
||||
return Procedure(parms, body, env)
|
||||
case ['define', Symbol(var), exp]: # (define var exp)
|
||||
env[var] = evaluate(exp, env)
|
||||
case ['define', [name, *parms], body]: # (define (fun parm...) body)
|
||||
env[name] = Procedure(parms, body, env)
|
||||
case ['lambda', parms, body]: # (lambda (parm...) body)
|
||||
return Procedure(parms, body, env)
|
||||
case [op, *args]: # (proc arg...)
|
||||
proc = evaluate(op, env)
|
||||
values = (evaluate(arg, env) for arg in args)
|
||||
|
Loading…
Reference in New Issue
Block a user