Aufgabe:
Code: Alles auswählen
E = ('mul', ('add', ('lit', 3), ('lit', 4)), ('lit', 3))
print evl(E)
Code: Alles auswählen
@gen
def evl_mul(x, y): return evl(x) * evl(y)
@gen
def evl_add(x, y): return evl(x) + evl(y)
@gen
def evl_lit(x): return x
Code: Alles auswählen
def gen(f):
b, s = f.__name__.split("_")
g = globals()
if b not in g:
def gen(t): return g[b].func_dict[t[0]](*t[1:])
g[b] = gen
g[b].func_dict[s] = f