A "comprehension"-nek mi a magyar fordítása, ha Pythonról van szó?
Példa comprehensionre:
powers_of_two = [2**n for n in range(1, 6)]
Nem feltétlenül akarom lefordítani, csak kíváncsi voltam valaki már megtette-e.
Igazából azt se értem, hogy angolul miért comprehensionnek hívják ezt a szerkezett.
Egy magyar helyen "listafeldolgozó" néven említik.
Én ennek már próbáltam utánajárni, és nincs bevett megfelelője. A magam részéről a listaképzést használom és próbálom terjeszteni, mert kifejező.
iostream megoldásával azért nem értek egyet, mert a generátor szónak másik (és ettől nem is távoli) jelentése van a Pythonban, nem helyes összemosni őket.
Még két gondolat:
* Magyar szakkifejezéseket, szaknyelvet teremteni helyes dolog, kétszáz éve erre tették fel az életüket az őseink. Mindig mindent lefordítani nem lehet a mai világban, de azért törekedni kell rá. A programozásnak VAN magyar szaknyelve, a fontos és állandónak látszó fogalmakat érdemes lefordítani. Ha használni kezdik a fordítást, már nem csak angolul fogsz találkozni vele mindenhol.
* A listaképzés _alapvetően_ különbözik a listaképzéstől. Önmagában egy ciklust helyettesít, egyetlen utasítássorban lezárt egészet alkot, egy kész lista az eredménye. (Ugyanez a comprehension módszer más adatszerkezeteknél is működik a Pythonban, de kétségtelenül a listánál használjuk a legtöbbet.) A generátor pedig olyan _függvényt_ jelent, amely egyedi értékeket ad vissza, és ezt az értéket csak ciklusban tudjuk felhasználni. Nagyon szerencsétlen dolog volna ezeket összekeverni, nem segítené a fogalmi tisztánlátást.
(Iostream, bocs, ez volt az első eset, amikor piros kezet adtam egy válaszodra, ennél jobbakat szoktál te írni.)
Az előző vagyok.
Értelemszerűen:
A listaképzés _alapvetően_ különbözik a listaképzéstől.
helyett
A listaképzés _alapvetően_ különbözik a generátortól.
Mint tudjuk, a programozó olyan szerkezet, amely a kávét alakítja át programkóddá, és a kávé még előttem áll. :-)
Biztos feltűnt, hogy én is utaltam a generátorokra, és pont azért használnám a generátort ebben is, mert teljesen hasonló téma. Te nagyon technikai szemszögből közelíted meg a dolgot: szerinted az egyik egy lista, a másik meg egy függvény. Szerintem a Python pont nem ezt a filozófiát támogatja. Mindkettő egy bejárható objektum. Valami, amin végig lehet menni. A lista egy speciális esete a bejárhatónak, a generátor pedig a legalapvetőbb, on demand fajta.
Nem véletlen, hogy Pythonban az, hogy x = X() nem mondja meg, hogy X egy típus vagy egy függvény, nem véletlen, hogy azonos a szintaxis. Ezt hívjuk absztrakciónak, elfedjük a részleteket.
Mindkettő bejárható, de míg a generátor lényegében csak a bejárást teszi lehetővé és alapvetően csak ciklussal használható értelmesen, a lista ennél sokkal többféle módon és rugalmasabban használható.
Kicsit filozofikusan azt mondanám, hogy a generátor csak egy _lehetőség_, nem aktuálisan létező valami. Nem kérhetem le az ötödik generált elemet direktben, nem kérdezhetem meg, hány elemet fog előállítani. Ő maga sem tudja előre. Egyébként egy csodálatos lehetőség, én nagyon szeretem, de nagyon másnak látom, min a listát, ami egy sokkal klasszikusabb adatszerkezet, más adatszerkezetekbe könnyedén konvertálható oda-vissza, rendezhető, szeletelhető... Vagyis aktuálisan létező és megfogható. Ha már az angol kifejezések iránti rajongásnál tartunk, nem véletlen, hogy az eredeti név sem utal a generátorokra. A listaképzés egy legóművelet, amivel előállítunk egy összetettebb részelemet.
Köszönöm mindenkinek a hozzászólást. Őszintén szólva nem számítottam rá, hogy értelmes válaszok érkeznek, arra meg végképp nem, hogy ilyen alaposan sikerül körüljárni a témát.
A magam részéről egyértelműen a "listaképző" (halmazképző, szótárképző) fordítást tartom a legjobbnak, ezt is fogom használni.
1, Tényleg utal a comprehension lényegére, nem úgy mint a "listafeldolgozó".
2, Egyedi és nem keverhető össze más közeli fogalmakkal, nem úgy mint a generátor.
Minden választ hasznosnak értékeltem, ment a zöld kéz, ha ez számít valamit.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!