Portál AbcLinuxu, 11. května 2024 15:31


Dotaz: Kalkulačka v haskellu pomocí Happy

nooneanymore avatar 14.2.2010 15:01 nooneanymore | skóre: 14 | blog: Smazano
Kalkulačka v haskellu pomocí Happy
Přečteno: 244×
Odpovědět | Admin
Zdravim,

nemate nekdo po ruce fungujici priklad kalkulačky s ukladanim do promennych, ktery je vytvoren v haskellu pomoci happy? Chtel jsem si vyzkouset haskell na problemu, co ted resim, ale v dokumentaci a zdrojacich od Happy je jenom priklad bez vypoctu a s haskellem jsem v podstate zacal vcera... Ten neuplny priklad je konkretne zde...

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.2.2010 15:29 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Kalkulačka v haskellu pomocí Happy
Odpovědět | | Sbalit | Link | Blokovat | Admin

V tom odkazovaném kódu je funkce runCalc a ta převede výraz zadaný jako řetězec na jeho syntaktický strom typu Exp. Takže stačí napsat jen kód, co vyhodnotí výraz typu Exp.

nooneanymore avatar 15.2.2010 18:51 nooneanymore | skóre: 14 | blog: Smazano
Rozbalit Rozbalit vše Re: Kalkulačka v haskellu pomocí Happy
Příloha:
Dekuji za navrh, ale ja chtel jenom priklad, kde toto funguje. To jsem mel asi rict nejdriv, takze se omlouvam. V podstate by melo jit o doplneni potrebnych radku do souboru v priloze... Podle me by melo runCalc byt typu "String -> Int", nebo ne? Kdyz na prilohu ale aplikuju happy a pak vysledek zkompiluju, runCalc chce po me krome retezce i [(String, Int)], takze aby to fungovalo musim jako druhy parametr zadavat treba [("",0)], coz se mi zda dost divne a nejak se mi to nelibi...
15.2.2010 19:17 Radek Miček | skóre: 23 | blog: radekm_blog
Rozbalit Rozbalit vše Re: Kalkulačka v haskellu pomocí Happy

Funkce runCalc v příloze má typ String -> [(String, Int)] -> Int, kde první parametr je řetězec, co chcete rozparsovat a druhý parametr je seznam dvojic (varName, value), každé proměnné přiřazuje hodnotu. Funkce by se dle mého názoru měla volat runCalc vyraz [], pokud nepředpokládáte nějaké standardní hodnoty proměnných, pokud chcete proměnné a dát hodnotu 2, pak lze zavolat runCalc vyraz [("a", 2)].

nooneanymore avatar 15.2.2010 19:40 nooneanymore | skóre: 14 | blog: Smazano
Rozbalit Rozbalit vše Re: Kalkulačka v haskellu pomocí Happy
Dekuji, [] uz vypada daleko lepe. Zajimave, staci se vyspat, a co clovek s natuknutim od jineho nevyresi... :) Kazdopadne haskell se jevi zajimavy...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.