Vlákno názorů k článku Clojure aneb jazyk umožňující tvorbu bezpečných vícevláknových aplikací pro JVM (2.část) od M. Prýmek - Opět bezvadná série. Dobrá práce, Pavle, díky! Jenom drobný...

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

    M. Prýmek

    Opět bezvadná série. Dobrá práce, Pavle, díky!

    Jenom drobný poznámky (většinou překlepy):

    "podpora pro datového typu"

    Není pro "form" v češtině zaužívaný pojem "formule"? Jako "forma" (ani "formulář" ;) bych to nepřekládal.

    Ampersand -> apostrof, to už tady zaznělo
    duplikátní -> duplicitní

    Není zbytečný psát pořád dokola Closure, Lisp atd. italikou? Při čtení to trochu ruší běh odstavce...

    Některý věci se možná zbytečně opakují (už zazněly v předchozím dílu).

    > Pomocí běžných funkcí by nebylo možné tuto funkcionalitu splnit, protože by se kód (předaný jako parametr – jinou možnost v Clojure ostatně prakticky nemáme) vykonal ještě před zavoláním „podmínkové“ funkce.

    Jde to udělat i pomocí lambdy, ne? Speciální "if-funkce" imho nezbytně nutná není.


    Ale to jsou jenom drobný výhrady, jinak fakt super práce a ještě jednou za ni dík.

  • 25. 6. 2012 9:34

    atarist (neregistrovaný)

    Jak by se dala specialni forma (formule?) "if" vytvorit pomoci lambdy? Me to dost zajima, protoze jsem premyslel o tom, jestli by slo udelat lisp-like jazyk bez spec. forem. Neco podobneho ma TCL, ale tam je to jaksi vsechno naopak - cely seznam se automaticky quotuje, takze se musi spustit explicitne. Tam asi spec. formy nepotrebuji, kdyz je to interne vsechno retezec, ale LISP/Clojure?

  • 25. 6. 2012 12:08

    M. Prýmek

    Imho by to slo minimalne tak, ze by ten if byla specialni zabudovana funkce (takze minimalne syntakticky by to nic specialniho nebylo):

    if (podminka, lambda x,y: neco_pokud_ano(x,y), lambda a,b: neco_jinyho_po­kud_ne(a,b))

    Kdyby to nemela byt ani zabudovana funkce, tak by se to nejspis dalo zrealizovat za podminky lineho vyhodnocovani: (podminka) and (lambda x,y: neco_pokud_ano(x,y))

    Syntakticky je to samozrejme nepohodlny, ale jde to.

  • 26. 6. 2012 8:45

    Pavel Tišnovský
    Zlatý podporovatel

    Diky za pripominky, italiku jsem v dalsi casti omezil (pokud jsem to nekde nezapomel, tak je u kazdeho terminu pouzita jen u jeho prvniho vyskytu). Ampersand uz by se taky nemel vyskytovat - za to se stydim, ale zase psat v podkrovnim byte s 33 C, to uz opravdu mozek vynechava :-)

    *if* jako specialni forma (formule?) nutny neni, slo by to resit pomoci makra a specialnich forem *and* a *or* - myslenka v clanku byla takova, ze podporu specialnich forem v LISPovskych jazycich potrebujeme, protoze se automaticky vyhodnocuji parametry, coz ne vzdy chceme (krome if je prikladem i makro while pro smycku, def/defun/defi­ne/let atd.)