Personal tools

Pot folosi fail impreuna cu monada parserelor ?

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m
 
 
(4 intermediate revisions by one user not shown)
Line 1: Line 1:
Da, fail are un tip polimorfic asa ca il puteti folosi si cu monada de IO si cu monada parserelor si cu alte monade.
+
[[Category:Ro]]
   
'''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."'
+
  +
<center>
  +
  +
http://www.haskell.org/sitewiki/images/2/2c/BannerProLinuxAndHaskell.gif
  +
  +
[http://stiinte.ub.ro La facultate poti invata unul din cele mai productive limbaje: Haskell.]
  +
</center>
  +
  +
  +
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 de obicei oprirea programului cu afisarea acelui mesaj. Vi-l puteti imagina pe '''fail''' ca un fel de 'exit "Mesaj text dorit de dvs."' Exceptie fac cateva monade: Monada Maybe, monada listelor ...pentru ele fail este definit altfel.
  +
  +
In clasa Monad fail este prezentat 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 prezuma 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. La monada Maybe toate fail-urile nu fac decat sa dea Nothing, fiind declarat:
  +
  +
fail s = Nothing
  +
  +
iar la monada listelor fail, indiferent de string da lista vida, fiind declarat:
  +
  +
fail s = []
   
 
Despre acest subiect mai putem discuta.
 
Despre acest subiect mai putem discuta.
 
----
 
----
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell ]
+
Pagina indexata la indexul [[Category:Ro]] [http://www.haskell.org/haskellwiki/Category:Ro Categories:Ro]
  +
----
  +
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell. ]<br> <br>
  +
[http://www.haskell.org/haskellwiki/Intrebarile_incepatorului <'''-''' Inapoi la Intrebarile incepatorului Ro/Haskell. ]

Latest revision as of 01:03, 29 November 2009


BannerProLinuxAndHaskell.gif

La facultate poti invata unul din cele mai productive limbaje: Haskell.


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 de obicei oprirea programului cu afisarea acelui mesaj. Vi-l puteti imagina pe fail ca un fel de 'exit "Mesaj text dorit de dvs."' Exceptie fac cateva monade: Monada Maybe, monada listelor ...pentru ele fail este definit altfel.

In clasa Monad fail este prezentat 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 prezuma 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. La monada Maybe toate fail-urile nu fac decat sa dea Nothing, fiind declarat:

fail s = Nothing

iar la monada listelor fail, indiferent de string da lista vida, fiind declarat:

fail s = []

Despre acest subiect mai putem discuta.


Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la Intrebarile incepatorului Ro/Haskell.