HaskellWiki

Haskell | Wiki community | Recent changes
Random page | Special pages

 

Not logged in
Log in | Help

Cum scriem un parser care accepta un string daca contine o anumita litera?

Categories: Ro


Nu sunt convins ca acesta este rolul unui parser.
Totusi puteti scrie un asemenea parser. Ar putea fi
unul din acei stranii "parseri pentru analiza lexicala".
De exemplu pentru a verifica faptul ca un final de mesaj
are un punct sau un @.


Includeti-l in lucrarea de laborator FrontEnd.hs
Iata-l: Un parser care accepta un cuvant daca el contine o litera

fitem c = Parser (\xs -> case xs of 
                       "" -> []
                       _  -> if c `elem` xs then [(xs,[])]
                                            else []
                 )

Si iata cum ar functiona:
{--
FrontEnd2> parse (fitem '2') "LaMultiAni2008!"
[("LaMultiAni2008!","")]
FrontEnd2> parse (fitem '9') "LaMultiAni2008!"
[]
FrontEnd2> [Leaving Hugs]
[dan@localhost 9-aug2006-10-interpretoare-HUGS]$

--}


Nota: Remarcati ca nu e un parser compus din altele ci scris
ca unul primitiv. Trebuie inclus IN biblioteca, daca
aceasta nu exporta constructorul Parser.
In exemplele noastre functia care aplica un parser era parse nu papply ca cea din biblioteca ParseLib.


Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la inceputul paginii 'Intrebarile incepatorului Ro/Haskell'.

Retrieved from "http://www.haskell.org/haskellwiki/Cum_scriem_un_parser_care_accepta_un_string_daca_contine_o_anumita_litera%3F"

This page has been accessed 215 times. This page was last modified 14:42, 10 February 2008. Recent content is available under a simple permissive license.