Difference between revisions of "Pot folosi fail impreuna cu monada parserelor ?"

From HaskellWiki
Jump to navigation Jump to search
m
Line 5: Line 5:
 
In clasa Monad fail este declarat cu semnatura:
 
In clasa Monad fail este declarat cu semnatura:
   
fail :: String m a
+
fail :: String m a
   
 
unde m este monada iar a este orice alt tip incapsulat intr-o valoare monadica (ok, daca ne gandim la valorile monadice ca la niste capsule).
 
unde m este monada iar a este orice alt tip incapsulat intr-o valoare monadica (ok, daca ne gandim la valorile monadice ca la niste capsule).
  +
  +
In lipsa altor declaratii pentru a defini operatiile dintr-o monada anume se presuma ca fail a fost definit ca:
  +
  +
fail s = error s
  +
  +
deci ca va avea ca efect afisarea unei erori. Totusi la unele monade fail ''este'' altfel definit, fie din felul cum e declarata monada in biblioteca fie fiindca asa a dorit programatorul.
   
 
Despre acest subiect mai putem discuta.
 
Despre acest subiect mai putem discuta.

Revision as of 13:42, 16 December 2007

Da, fail are un tip polimorfic asa ca il puteti folosi si cu monada de IO si cu monada parserelor si cu alte monade.

Atentie: Fail este intotdeauna urmat de argumentul sau, string-ul care va apare pe ecran si produce oprirea programului cu afisarea acelui mesaj. Vi-l puteti imagina ca un fel de 'exit "Mesaj text dorit de dvs."'

In clasa Monad fail este declarat cu semnatura:

fail :: String m a

unde m este monada iar a este orice alt tip incapsulat intr-o valoare monadica (ok, daca ne gandim la valorile monadice ca la niste capsule).

In lipsa altor declaratii pentru a defini operatiile dintr-o monada anume se presuma ca fail a fost definit ca:

fail s = error s

deci ca va avea ca efect afisarea unei erori. Totusi la unele monade fail este altfel definit, fie din felul cum e declarata monada in biblioteca fie fiindca asa a dorit programatorul.

Despre acest subiect mai putem discuta.


<= Inapoi la pagina principala Ro/Haskell