Worin liegt der Nutzen,
Code: Alles auswählen
def add_and_print_maker(x):
def temp(y):
print("{} + {} = {}".format(x, y, x + y))
return temp
Code: Alles auswählen
def add_simple(x, y):
print("{} + {} = {}".format(x, y, x + y))
Code: Alles auswählen
def add_and_print_maker(x):
def temp(y):
print("{} + {} = {}".format(x, y, x + y))
return temp
Code: Alles auswählen
def add_simple(x, y):
print("{} + {} = {}".format(x, y, x + y))
Wenn man etwa eine Funktion immer mit einem Parameter aufruft der gleich bleibt. Dann kann man den curry'en und bekommt eine spezialisierte Funktion wo diese Parameter implizit ist. Man kann diese Funktion dann etwa weitergeben, an weitere Funktionen, die den Parameter gar nicht kennen müssen sondern wissen dass sie so eine Funktion erwarten können.mzh hat geschrieben:wann kann es sinnvoll und nützlich sein, eine Funktion zu bekommen, anstatt direkt einen Funktionswert?
Ja, für Callbacks ist das manchmal praktisch, dort wo man früher ``lambda``s verwendet hat, kann man oft currying nutzen.mzh hat geschrieben:ja, ok das scheint sinn zu ergeben. Ich hab kürzlich so ein Button-Tutorial durchgemacht, da war ich aber noch nicht sicher, ob ich den Witz begriffen hab.