Hlavní navigace

Názor ke článku Lambda výrazy, uzávěry, bloky od JS - Nejsem si jisty, zda autor zapisku pochopil smysl...

  • 22. 7. 2011 6:14

    JS (neregistrovaný) 86.49.67.---

    Nejsem si jisty, zda autor zapisku pochopil smysl uzaveru (lambda vyraz neni totez). Rikam to proto, ze jsem sam docela dlouho zil ve stejnem omylu. Pointa neni v te anonymite nebo zjednoduseni zapisu. Pointa je v tom, ze vam to umoznuje vykonat operaci v jine casti kodu (kam predate ten uzaver), ale v lexikalnim kontextu mista, odkud ho predavate.

    To ma za dusledek, ze lexikalni kontext (= ke kterym promennym muzete pristupovat z ktere funkce) uz neni strom, hierarchicka struktura, jak je zapsana ve zdrojaku, ale graf. A to zprehlednuje kod, protoze to umoznuje logicky oddelit operace, ktere by se musely jinak zapsat ve stejnem bloku.

    A jak uz zminuje Mordae, pomoci uzaveru se da opravdu resit vsechno, napriklad se pomoci nich daji implementovat tridy a objekty. V nekterych jazycich jsou proto misto trid toto jako zakladni primitiva.