fix some kinks caused by lambda migration

master
cynic 3 years ago
parent a040113e65
commit 2ee4ceefe6
  1. 4
      lib.py

@ -70,7 +70,7 @@ def execute(program):
elif ctx[0][1] == "id": 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(eval(_destr(subs[1]))[_destr(subs[2])](*[i[1] for i in _fixarr(subs[3])])) return _box(eval(_destr(subs[1]))[_destr(subs[2])](*[(i if type(i) == type([]) else i[1]) for i in _fixarr(subs[3])]))
elif ctx[0] == _ident("def"): elif ctx[0] == _ident("def"):
ids[ctx[1]] = subs[2] ids[ctx[1]] = subs[2]
return ids[ctx[1]] return ids[ctx[1]]
@ -117,7 +117,7 @@ def execute(program):
return _execute(prototype, lids, lfns) return _execute(prototype, lids, lfns)
else: else:
#print(f"{subs[0]} is not a valid function") #print(f"{subs[0]} is not a valid function")
return subs return _execute(subs, lids, lfns)
elif ctx[0][0] == "lambda": elif ctx[0][0] == "lambda":
prototype = ctx[0][1][1] prototype = ctx[0][1][1]
for idx, arg in enumerate(ctx[0][1][0]): for idx, arg in enumerate(ctx[0][1][0]):

Loading…
Cancel
Save