Hlavní navigace

Názor k článku Funkce v programovacím jazyku Lua - uzávěry od anonym - 1. Python je jazyk, který univerzální a flexibilní...

  • Článek je starý, nové názory již nelze přidávat.
  • 7. 4. 2009 23:24

    anonymní
    1. Python je jazyk, který univerzální a flexibilní mechanismus uzávěrů nahradil půltuctem specializovaných konstrukcí. (Kupříkladu iterace: cyklus for, iterátorové a generátorové výrazy; parametrizovaný sort: předání pojmenované funkce nebo polofunkční lambda (povolené jen výrazy), datová abstrakce: objektový systém s neměnnou sémantikou ... atd.) Opravdu čekáte, že příkladů, kdy je (polofunkční) pythoní lambda lepší než jiná pythoní konstrukce, naleznete hodně?

    Mimochodem, není ten "funktor" v Pythonu jen "anonymní uzávěr" se složitou syntaxí (protože se musí definovat třída a konstruktor)? To by právě možná byl docela dobrý příklad toho, kdy je uzávěr lepší. :-)

    3. Mezi metodou objektu sahající na atributy objektu a mezi funkcí sahající na bindingy se scopem širším než tělo její funkce v podstatě není žádný rozdíl. :-) Obojí představuje "šahání jinam než dovnitř funkce" a v obou případech je dotyčný binding vytvořen jinde než v těle funkce a jindy než při jejím volání. To je mimochodem důvod, proč se lexikální scope tolik ujal: Je mnohem čitelnější (je statický) než dynamický scope, vlastně je triviálně pochopitelný a intiutivní.