ExcellingCabbage

所属分类:collect
开发工具:Haskell
文件大小:0KB
下载次数:0
上传日期:2015-01-27 19:07:19
上 传 者sh-1993
说明:  在haskell中实现的 React编程,
(Reactive Programming implemented in haskell,)

文件列表:
EXData.hs (1837, 2015-01-27)
EXParser.hs (3814, 2015-01-27)
EXReactive.hs (11879, 2015-01-27)
ExcellingCabbage.cabal (1376, 2015-01-27)
LICENSE (18043, 2015-01-27)
Setup.hs (46, 2015-01-27)
display.pdf (116614, 2015-01-27)
doc/ (0, 2015-01-27)
doc/EXData.html (8259, 2015-01-27)
doc/EXParser.html (7032, 2015-01-27)
doc/EXReactive.html (11210, 2015-01-27)
doc/ExcellingCabbage.haddock (10434, 2015-01-27)
doc/doc-index.html (3373, 2015-01-27)
doc/frames.html (860, 2015-01-27)
doc/haddock-util.js (8189, 2015-01-27)
doc/hslogo-16.png (1684, 2015-01-27)
doc/index-frames.html (903, 2015-01-27)
doc/index.html (1506, 2015-01-27)
doc/mini_EXData.html (1461, 2015-01-27)
doc/mini_EXParser.html (1550, 2015-01-27)
doc/mini_EXReactive.html (1981, 2015-01-27)
doc/minus.gif (56, 2015-01-27)
doc/ocean.css (8651, 2015-01-27)
doc/plus.gif (59, 2015-01-27)
doc/synopsis.png (11327, 2015-01-27)
excell.hs (2067, 2015-01-27)
excellingcabbage.pdf (128595, 2015-01-27)

Functional Reactive Programming - mini Excel ============================================= Naa naloga je bila ustvariti tabelo polj, podobno excelu, kjer tudi mi polja imenujemo celice. V celicah se lahko nahajajo vrednosti ali formule, ki pa se spreminjajo ob spremembi odvisnih polj. Torej dopuamo monost, da so lahko celice medsabo odvisne in e spremenimo eno celico, se bo istoasno spremenila tudi celica, ki je od nje odvisna. To smo naredili tako, da smo uporabili FRP programsko paradigmo. ### Parsec V ExParser.hs smo uvozili knjinico Parsec, s katero smo si pomagali sprejete stringe pretvoriti v drugo podatkovno strukturo. ### Funkcijsko Reaktivno programiranje-FRP ## Reaktivno programiranje Reaktivno programiranje je programska paradigma, ki je usmerjena okoli podatkovnih tokov(pretoku podatkov) in irjenja sprememb. To pomeni, da bi bilo mogoe izraziti statine ali dinamine podatkovne tokove, ki bi bili z lahkoto uporabljeni v programskih jezikih in da bi temeljni izvrni model samodejno iril spremembe preko podatkovnih tokov. Za laje razumevanje si bomo ogledali enostaven primer. Recimo, da imamo 3x3 excel tabelo. V celicah A1, A2, A3 se nahajajo zneski, ki jih elite vezati na banko. V celici B1 se nahaja obrestna mera=r, ki jo ponuja banka. Celice C1, C2, C3 kaejo va zasluek po enem letu, torej C1 = A1*(1+B1) in podobno za C2 in C3. Vidimo, da so celice C odvisne od celice B1. Recimo, da se banka odloi poveati obrestno mero, torej spremenimo samo celico B1. Potem se magino spremenijo vse celice C(they update). Torej mi nismo sami spremenili vrednosti celic C, ampak so se one same spremenile, ker se je vrednost od katere so odvisne(B1) spremenila -> Reaktivno programiranje ## FRP FRP je programska paradigma za reaktivno programiranje z uporabo gradnikov funkcionalnega programiranja(npr.: map, reduce, filter). FRP se uporablja za programiranje grafinih uporabnikih vmesnikov(GUI), robotike, animacij in glasbe, katerega namen je poenostaviti te teave z izrecnim modeliranjem asa. Bistveno pri funkcijsko reaktivnem programiranju je da imamo dva pomembna podatkovna tipa, to sta DOGODEK(=Event) in OBNAANJE(=Behaviour) in razline naine, kako jih zdruiti. 1.) data Event a: Dogodek predstavlja tok dogodkov, ki se pojavljajo v tono doloenem asu. Lahko si predstavljamo dogodek, kot neskonen seznam vrednosti, ki so oznaeni s pripadajoim ustreznim asom njihovega nastanka. -> type Event a = [(Time, a)] 2.) data Behaviour a Onbaanje predstavlja vrednost, ki se spreminja v asu. Torej asovno spreminjajoa vrednost je obnaanje, ki ima lahko razline vrednosti ob razlinih asih. Predstavljamo si lahko na taken nain: -> type Behaviour a = Time -> a ## ExReactive.hs Knjinica Threepenny-gui, preko katere smo implementirali funkcijsko reaktivno programiranje, je knjiica, ki se uporablja za grafine uporabnike vmesnike(= graphical user interfaces). GUI okvir(=framework) uporablja spletni brskalnik(=web brauser) za prikaz rezultatov. Program napisan s Threepenny je v bistvu majhen spletni strenik, ki prikazuje uporabniki vmesnik kot spletno stran brskalnika, s katero se povezuje. Threepenny-gui vsebuje ve modulov, med njimi tudi Graphics.UI.Threepenny.Core, ki vsebuje glavne funkcije. Pravtako tako smo uporabili funkcije iz modulov Reactive.Threepenny, Graphics.UI.Threepenny.Attributes in Graphics.UI.Threepenny.Elements. Naa datoteka EXReactive.hs implementira vse potrebne funkcije, da se naredijo osnovni bloki reaktivnega excela z uporabo knjiice Threepenny-gui-ja. ## excell.hs Naa datoteka excell.hs je glavna datoteka, ki klie vse ostale knjiice in prikae rezultat. ## Da zaenemo na program, najprej v terminalu(Linux) vtipka: cabal configure, da zaene datoteko ExcellingCabbage.cabal cabal install, da intalira Cabal knjiice cabal build cabal run Terminal ti vrne spletni vir http:/127.0.0.1:8023/ , ki jo vtipka v spletni brskalnik in rezultat se prikae, v naem primeru mini excel tabela. ### Diagrama Sliki excellingcabbage.pdf in display.pdf prikazujeta strukturo ozadja nae kode, kako deluje na program. Na slikah rke oznaujejo event ali behaviour, medtem ko poimenovani pravokotni prostorki predstavljajo funkcije.

近期下载者

相关文件


收藏者