don't try to execute variable markers before they're subbed

master
cynic 3 years ago
parent eff4b7d89d
commit cb81efc544
  1. 4
      lib.py
  2. 12
      test.klambda

@ -54,7 +54,9 @@ def execute(program):
) )
_fixarr(subs) _fixarr(subs)
#print("abba", ctx, subs) #print("abba", ctx, subs)
if ctx[0][1] == "id": if ctx[0][1][0] == "$":
return subs
elif ctx[0][1] == "id":
return subs[1] if len(subs[1:]) == 1 else subs[1:] return subs[1] if len(subs[1:]) == 1 else subs[1:]
elif ctx[0] == _ident("miracle"): elif ctx[0] == _ident("miracle"):
return _box(getattr(sys.modules[_destr(subs[1])], _destr(subs[2]))(*[i[1] for i in _fixarr(subs[3])])) return _box(getattr(sys.modules[_destr(subs[1])], _destr(subs[2]))(*[i[1] for i in _fixarr(subs[3])]))

@ -21,4 +21,16 @@ INCLUDE:./lib/aids.klambda
) )
) )
(defun loop
(id all
(id id spit ($1))
(id id cond (id id id = $1 $2)
$1
(id id id loop (id id id id + $1 1) $2)
)
)
)
(loop 0 5)
(thesis) (thesis)
Loading…
Cancel
Save