• ú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í
    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
    SLUPKA
    SLUPKA --- ---
    WOODMAKER: Pokud chceš praktickou funkcionálku, mrkni na F# :)
    TMA
    TMA --- ---
    Je v Haskellu něco jako lispovské defmacro?
    WOODMAKER
    WOODMAKER --- ---
    LUDWIG_: díky. Tak mě napadlo, že bych se rád podíval na nějakej návod, jak ten jazyk používat prakticky. Měli jsme ve škole kurz haskellu a bylo to o funkcích. A všechny ty funkce byly jako takový a bez jakýchkoli side-efektů, jako je vstup, nebo výstup. Nebylo by prosím něco takového?
    LUDWIG_
    LUDWIG_ --- ---
    (jinak klidne hrnte newbies dotazy - nebojte, nikdo z nas nekouse :))
    LUDWIG_
    LUDWIG_ --- ---
    WOODMAKER: tak jako se vsim (viz proflakly vtipek s implementaci faktorialu: http://www.willamette.edu/~fruehr/haskell/evolution.html ) mas celkem dost moznosti - nejjednodussi je asi dat do main funkce putStrLn, tedy
    main = putStrLn "Hello World"
    pak zkompilujes a spustis, nebo pouzijes runghc

    (jestli jsem tedy spravne pochopil, ze chces klasicky hello world program, nikoliv jen hello world vraceny jako string v naky funkci v ghci)
    WOODMAKER
    WOODMAKER --- ---
    :) mám hloupou otázku. Jak v haskellu udělat hello world program? A nechci "hello world" odpověď, protože to mi jenom vrátí string. Já ho chci vypsat nějak ...
    LUDWIG_
    LUDWIG_ --- ---
    MICTECH: viz [ LUDWIG_ @ Funkcionální programování (Haskell, LISP, O'Caml, F#, Scala, ...) ]
    tak samo vitam navrhy na vhodne prejmenovani diskuze, aby vystihlo, ze se tu budou resit nasledujici veci: funkcionalni programovani jako takovy, funkcionalni pristup v imperativnich jazycich a produkty spjate s funkcionalnim programovani... kdyz bychom se odklonili od tech problemu xmonadu, tak je to jeden z nejstabilnejsich wm prave diky ruznym haskellovskym vymozenostem, treba ze ma funkce projety quickcheckem.
    tak prosim nacni programatorske tema... a klidne se tu muze resit i treba lambda kalkulus :)
    Kliknutím sem můžete změnit nastavení reklam