• ú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í
    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 :)
    MICTECH
    MICTECH --- ---
    Prosim o prejmenovani diskuze na "Resime problemy s xmonad", dekuji
    LISKNI_SI
    LISKNI_SI --- ---
    ANT_39: Ony se cyklej jenom v tom kde/gnome looku, s "SAL_USE_VCLPLUGIN=gen" v prostředí to nedělá. Ale aj tak se to chová strašně. Člověk nedej bože zkusí přesunout nějaký plovoucí okno a pak se cyklí i to. Ale co už.
    LUDWIG_
    LUDWIG_ --- ---
    holt xmonad je konstruovany na vim :)
    ANT_39
    ANT_39 --- ---
    LISKNI_SI: Jo, ten openoffice mi na xmonadu blbne taky, umi se tomu ty okna zacyklit. Neprijemne.
    LISKNI_SI
    LISKNI_SI --- ---
    LUDWIG_: Jo, to mi asi taky občas dělá. Naučil jsem se nenávidět Javu a OpenOffice, ale asi bych celkem chápal, kdyby se mi za to ostatní děti smály a sváděly to na windowmanager :-)
    LUDWIG_
    LUDWIG_ --- ---
    LISKNI_SI: pousteni nekterych javovskych aplikaci - mozna to uz s novym jdk nedela problem, ale pamatuji si, ze jsem zapolil s tim nonreparentingem, ze kdyz se mi podarilo konecne pustit jednu swingovou aplikaci bez zatuhnuti, tak v ni zatuhlo menu...
    LISKNI_SI
    LISKNI_SI --- ---
    LUDWIG_: Jaký neduhy konkrétně to jsou u toho xmonadu, mimochodem?
    LITTLELI
    LITTLELI --- ---
    a co třebas concatenative languages?
    LUDWIG_
    LUDWIG_ --- ---
    nejake napady?
    LUDWIG_
    LUDWIG_ --- ---
    jinak mimo programovani se tu klidne mohou probirat produkty, ktere za svuj vznik vdeci prave funkcionalnimu programovani. namatku me napada xmonad, ktery je pro me (pres par neduh) spica mezi dlazdicovymi spravci oken, nebo treba framework mapreduce...
    nuze, asi by to chtelo upravit nazev na neco vtipneho a vserikajiciho, at to nezavani duplicitou k tem "zajimavym akademicnostem" :)
    LISKNI_SI
    LISKNI_SI --- ---
    Já se na to dostal z auditka svojí fakulty a příjemně mě to potěšilo :-))). Holt, pro tenhle „spam“ jsem těžce cílová skupina...
    LUDWIG_
    LUDWIG_ --- ---
    LITTLELI: no, v zachvatu euroforie, ze je to konecne zalozeny, jsem to postnul asi na 3, 4 mista, kde jsem v ten moment odhadoval, ze by to nektery lidi, co ty diskuze sleduji, mohlo zajimat... tedy ne uplne "vsude", jestli jsi koukal treba do [ Prolog, LISP, Scheme, Otter a vubec jine zajimave akademicnosti aneb Take ztraceni v jednoduchych zavorkach? ]
    LUDWIG_
    LUDWIG_ --- ---
    LISKNI_SI: tak to polomrtvy auditko o "akademickych" jazycich jsem postrehnul pri zakladani... tohle bych ale smeroval strikne na funkcionalni styl programovani (vyjimkou budiz "nefunkcionalni" psani ve funkcionalnim jazyku - jako treba jdou delat triky s do notaci v haskellu) a pokud mozno nejak praktictejs... samo se to nemusi omezovat na funkcionalni jazyky, tzn. je vitano i psani kodu s deklarativnim nadechem v imperativnich jazycich - celkem prirozene to jde v multiparadigmatickych jazycich jako python... nebo, abych ilustroval, co tim mj. myslim, me v souvislosti s tim treba napada tenhle clanek o tom, jak na hylomorfisticky funkce v c++: http://blackhole.sk/topichylomorfizmy-v-c
    WOODMAKER
    WOODMAKER --- ---
    LITTLELI: jakto všude?
    Kliknutím sem můžete změnit nastavení reklam