• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LUDWIG_Funkcionální programování (Haskell, LISP, XQuery, OCaml, F#, Scala, ...) - praxe, teorie a uplatnění
    SATAI
    SATAI --- ---
    BTW: SICP kursy maji i video podobu, ruzne skoly je maji na Academic Earth nebo na iTunes.
    SATAI
    SATAI --- ---
    LUDWIG_: Rekl bych, ze dulezita bude nejen kniha, ale i nekdo, kdo muze pusobit jako mentor. Coz plati u prgani obecne. Kazdopadne take doporucuji SICP, trebas alespon jako zdroj cviceni.
    LUDWIG_
    LUDWIG_ --- ---
    diky, tak uvidime, jak se s tim kamarad psycholog popere :)
    ALMAD
    ALMAD --- ---
    LUDWIG_: Přítelkyně (taktéž programováním nepoznamenaná) si čte real world haskell a tváří se spokojeně.
    TMA
    TMA --- ---
    LUDWIG_: HTDP (How to Design Programs) a SICP (Structure and Interpretation of Computer Programs) jsou dobré učebnice pro začátečníky. Problémy s nimi jsou dvojího rázu: jednak nejsou pro idioty,* jednak je to Scheme.

    HTDP http://www.htdp.org/
    SICP http://mitpress.mit.edu/sicp/

    _________________
    * Programování obecně není pro idioty. Přesto se mnoho... Ále, co se budu rozčilovat.
    LUDWIG_
    LUDWIG_ --- ---
    kamarad, ktery nikdy predtim neprogramoval, se chce naucit haskell - mate nekdo tip na nakou blbuvzdornou prirucku v anglictine? (mimo learnyouahaskell.com)
    ALMAD
    ALMAD --- ---
    SAJAGI: Jestli do toho počítáš i Erlang, tak ten se na distribuovaný zpracování dat používá afaik celkem prakticky a úspěšně, viz ejabberd, rabbitmq, couchdb, facebook chat, erikovský ústředny a tak ,)
    LITTLELI
    LITTLELI --- ---
    WOODMAKER: F# není čistý, takže to tam půjde uvařit s vedlejšíma efektama.
    LISKNI_SI
    LISKNI_SI --- ---
    TMA: Ad to EDSL, jestli máš čas, mrkni třeba sem: http://intoverflow.wordpress.com/2010/05/21/announcing-potential-x86-64-assembler-as-a-haskell-edsl/ a pak klikej na zajímavý odkazy. Já se v těch EDSL poslední dobu trochu patlal, ale dopisuju bakalářku, takže není čas diskutovat.
    LUDWIG_
    LUDWIG_ --- ---
    tak diskuze lehce prejmenovana, ted jeste neco zesumarizovat do zahlavi (pro lidi, kterym nestaci kombinator pevneho bodu :))... jinak klidne hazejte na nastenku odkazy k vasim oblibenym jazykum
    LUDWIG_
    LUDWIG_ --- ---
    SAJAGI: souhlasim s [ TMA @ Funkcionální programování (Haskell, LISP, O'Caml, F#, Scala, ...) ] - na ruzne "transformace"... tedy proste potrebujes-li se soustredit na hodnoty a ne na niternosti kolem behem programu, dava ti to mnohem vetsi prostor k abstrakci. u f# bacha, jak psal [ WOODMAKER @ Funkcionální programování (Haskell, LISP, O'Caml, F#, Scala, ...) ] , je to pomerne sympaticky hybrid, dovolujici takrka cloveku psat ruznymi paradigmaty, takze pri inklinovani k imperativnimu programovani zustava ten potencial funkcionalniho programovani nevyuzity :)

    TMA: http://www.haskell.org/happy/ - dotaz ale podsouvam ostatnim, kdo ma s timhle nejake vetsi zkusenosti.
    TMA
    TMA --- ---
    SAJAGI: Na cokoli, o čem se dobře přemýšlí jako o transformaci. (Něco jako: mám na začátku něco, výsledek získám tak, že spojím tuhle část a výsledek převodu támhleté části.)

    LUDWIG_: Jenže pak ten DSL nebude integrovaný. DSL pro popis instrukcí procesoru bude bokem. V C/C++ se místo maker tohoto typu používají generátory programů typu lex/yacc.
    WOODMAKER
    WOODMAKER --- ---
    SAJAGI: asi to bude chtít vědět, jak "funkcionálně přemýšlet", aby ten program pak k něčemu byl. Většině lidí, co jsou už trochu zvyklí na klasický programování to dělá obrovský problémy - žádný proměnný, potřeba vidět program jako celek a ne jako seznam věcí, co se tak asi provedou a jak přesně se provedou nastavím až potom. Ale hodně štěstí.
    SAJAGI
    SAJAGI --- ---
    WOODMAKER: Jo. V příštím projektu tedy zkusím F# na matematické modely, které jsou nyní implementovány v C#. Díky! :)
    WOODMAKER
    WOODMAKER --- ---
    SAJAGI: klasická matematika. Ten zápis je mnohem kratší, takže když máš něco matematicky zajímavějšího, nemusíš z toho dělat kdovíjakzdlouhavej a těžko čitelnej kód a soustředíš se fakt jenom na ten problém. Stačí to takhle?
    SAJAGI
    SAJAGI --- ---
    LUDWIG_: ok, tak já mám úplně začátečnický dotaz. Na jaký typ problémů se funkcionální jazyky nejvíc hodí? (ideálně bych chtěl slyšet něco z praxe, ne výcuc z wikipedie ;)
    LUDWIG_
    LUDWIG_ --- ---
    TMA: v tom se tolik neorientuji, ale predstavuji si, ze nejvetsi zaprah bude kolem napsani parseru, na coz je imho haskell idealni
    TMA
    TMA --- ---
    LUDWIG_: Kvůli DSL (domain specific language).
    LUDWIG_
    LUDWIG_ --- ---
    WOODMAKER: tak to je pomerne standardni u uceni se haskellu (narozdil od vetsiny "normalnich" jazyku), ze se projedou funkce a operace pro vstup/vystup byvaji az na konec, pokud vubec. mno, haskellacky funkce nepotrebuji side-efekty na IO (takhle se to resi v mirande, pokud se nepletu?), kdyz tu jsou monady :)

    TMA: myslim, ze ne - kvuli lazy evaluation ani nevim, jak by se to na to napasovalo... k cemu bys to vlastne potreboval? ja si u lispu pamatuji vyuziti na osetreni kodu, pokud neco bude (ne)nabyvat nejake hodnoty - o to se v haskellu nemusis starat a jen pouzijes monadu Maybe
    LITTLELI
    LITTLELI --- ---
    nebo Scalu
    Kliknutím sem můžete změnit nastavení reklam