Kurz was anderes, wollte dafür jetzt kein neues Thema eröffnen:
reduce soll mit python3k entfernt werden, richtig? Warum? Ich empfinde es inzwischen als ziemlich nützlich. Oder kann man Dinge, die man mit Reduce machen kann, besser / durchschaubarer mit anderen Dingen machen, und es ist damit praktisch ein "unnützes Spezialwerkzeug"?
Wenn das für ein neues Thema wert genug erscheint, tut's mir leid.
Die Zukunft von Reduce
@str1442: `reduce()` wird nicht entfernt, sondern nur in ein Modul (`functools`) verschoben. Empfohlene Alternative ist eine explizite ``for``-Schleife. Weil angeblich zu viele Leute zu doof sind `reduce()` zu verstehen. Sagt Guido.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Naja import reduce from functools Wobei ich es inkonsequent finde reduce zu verbannen und map da zu lassen. Ich tendiere ja eh schon fast dazu ein import * from functools; import * from itertools; in mein Template aufzunehmen..str1442 hat geschrieben:Kurz was anderes, wollte dafür jetzt kein neues Thema eröffnen:
reduce soll mit python3k entfernt werden, richtig? Warum? Ich empfinde es inzwischen als ziemlich nützlich. Oder kann man Dinge, die man mit Reduce machen kann, besser / durchschaubarer mit anderen Dingen machen, und es ist damit praktisch ein "unnützes Spezialwerkzeug"?
Wenn das für ein neues Thema wert genug erscheint, tut's mir leid.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
__builtins__ patchen Oder, naja, eine funktionale Sprache verwendenveers hat geschrieben:Ich tendiere ja eh schon fast dazu ein import * from functools; import * from itertools; in mein Template aufzunehmen..
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich finds nicht schlecht das sie die Generator Expressions die besser lesbar sind mehr in den Vordergrund bringen. Und Guido meint das reduce auch für ihn kompliziert ist
So now reduce(). This is actually the one I've always hated most, because, apart from a few examples involving + or *, almost every time I see a reduce() call with a non-trivial function argument, I need to grab pen and paper to diagram what's actually being fed into that function before I understand what the reduce() is supposed to do. So in my mind, the applicability of reduce() is pretty much limited to associative operators, and in all other cases it's better to write out the accumulation loop explicitly.
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek
In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Die rein Funktionalen sprachen sind mir dann eben doch zu funktional und meist zu unleserlichLeonidas hat geschrieben:__builtins__ patchen Oder, naja, eine funktionale Sprache verwendenveers hat geschrieben:Ich tendiere ja eh schon fast dazu ein import * from functools; import * from itertools; in mein Template aufzunehmen..
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Code: Alles auswählen
from itertools import *
from functools import *
from functional import *
import operator as op
Im nachinein kann man die Imports immer noch sortieren :]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich muss ja sagen, dass das Chaining in Scala mir doch durchaus gut gefallen hat, ebenso die Range-Syntax. OCaml hingegen ist typisch-funktional mit konfuser Syntaxveers hat geschrieben:Die rein Funktionalen sprachen sind mir dann eben doch zu funktional und meist zu unleserlich
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das Entfernen von `reduce` aus `__builtins__` ist Teil von Googles geheimer Strategie, den Leuten es schwerer zu machen, den Map-Reduce-Algorithmus selbst zu implementieren, was sie (noch) stärker an Google bindet und abhängiger macht. Merke: Giuogle weiß, was gut für dich ist. ;)
Ich find's bedauerlich, denn selbst das eine notwendige import ist lästig.
Stefan
Ich find's bedauerlich, denn selbst das eine notwendige import ist lästig.
Stefan
`reduce()` habe ich erst kürzlichst benutzt und es macht den Code kürzer, aber zugegeben auch komplizierter zu verstehen. Whatever. Durch den später notwendigen Import würde ich wohl auch eine for-Schleife vorziehen, allerdings hält hier einige auch `from operator import attrgetter, itemgetter` nicht ab
sma:
In other news, das Ding heißt jetzt nicht mehr MapReduce, sondern MapFor
Hab ich was in den Py3K-PEPs übersehen oder kann man jetzt "rückwärts" importieren?veers hat geschrieben:Ich tendiere ja eh schon fast dazu ein import * from functools; import * from itertools; in mein Template aufzunehmen..
sma:
In other news, das Ding heißt jetzt nicht mehr MapReduce, sondern MapFor