Generische Funktionen in 6 Zeilen Code
Verfasst: Donnerstag 3. April 2008, 08:25
Ich habe neulich jemanden mit Hilfe dieses Codes von Python vorgeschwärmt. Vielleicht findet es ja noch jemand interessant.
Aufgabe:
Lösung:
Meta-Magie:
Stefan
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