Seite 1 von 1

map für Funktionen mit mehreren Argumenten

Verfasst: Sonntag 17. April 2011, 10:53
von hendrikS
Bisher hatte ich map immer nur so angwendet: map(function, iterable). Bis ich jetzt herausgefunden habe, daß es auch anders geht. Wobei ich sagen muß, die Doku beschreibt das zwar alles. Aber so richtig klar war mir das nicht gleich. Hier mein Beispiel:

Code: Alles auswählen

print map(max,[1,2,4],[6,1,1])
Der Code ersetzt quasi folgende LC:

Code: Alles auswählen

print [max(a,b)for a,b in zip([1,2,4],[6,1,1])]
bzw. diese Konstruktion:

Code: Alles auswählen

print map(max,zip([1,2,4],[6,1,1]))
Nettes Feature, nicht?

Re: map für Funktionen mit mehreren Argumenten

Verfasst: Sonntag 17. April 2011, 11:30
von gkuhl
hendrikS hat geschrieben:Nettes Feature, nicht?
Jup, habs auch erst vor einigen Wochen entdeckt. :D

Re: map für Funktionen mit mehreren Argumenten

Verfasst: Sonntag 17. April 2011, 11:54
von sma
Mapcar gibt es in Lisp schon seit Ewigkeiten. Ich hätte jetzt gerne behauptet, dass stände so schon im LISP 1.5 Manual von 1962, aber da fand ich die Funktion nicht. Aber ich hoffe, spätestens bei Interlisp von 1974 sollte man fündig werden. Da das PDF nur ein schlechter Scan ist, der nicht durchsuchbar ist, hoffe ich, das niemand meine Behauptung sofort widerlegen kann :) Für CommonLisp von 1984 kann ich aber die Hand ins Feuer legen. Das ist immer noch fast 10 Jahre vor Python.

Stefan

Re: map für Funktionen mit mehreren Argumenten

Verfasst: Sonntag 17. April 2011, 12:10
von snafu
@sma:

Sagt ja auch keiner, dass Python eine bahnbrechende Erfindung gemacht hat. Es wird einfach so sein, dass viele Leute dieses Feature noch nicht kannten. Nicht mehr und nicht weniger. ;)