Personal tools

Cum transform o lista de actiuni de IO in actiunea-secventa a lor ?

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
 
(adding a Pro Haskell Banner)
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
  +
[[Category:Ro]]
  +
  +
<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>
  +
----
  +
 
Folositi o functie sequence_ cum este cea de mai jos.
 
Folositi o functie sequence_ cum este cea de mai jos.
   
Line 8: Line 18:
 
</haskell>
 
</haskell>
   
Sequence_ se putea defini si intelege si ca un foldr, ca o schimbare a operatorilor cons ":" de pe lista cu secventierea (>>) (care se pronunta ''then'' ) a doua actiuni de IO. Valoarea initiala pentru foldr este bineinteles actiunea de IO vida.
+
Sequence_ se putea defini si intelege si ca un foldr, ca o schimbare a operatorilor cons ":" de pe lista cu secventierea (>>) (care se pronunta ''then'' ) a doua actiuni de IO. Valoarea initiala pentru foldr este bineinteles actiunea de IO vida: ''return ()''
   
 
<haskell>
 
<haskell>
Line 22: Line 32:
 
apoi <br>
 
apoi <br>
 
tastati :t sequence_ <br>
 
tastati :t sequence_ <br>
  +
----
  +
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 inceputul paginii 'Intrebarile incepatorului Ro/Haskell'. ]

Latest revision as of 19:29, 27 October 2009


BannerProLinuxAndHaskell.gif

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


Folositi o functie sequence_ cum este cea de mai jos.

 
sequence_         :: [ IO() ] -> IO ()
sequence_  []     = return ()
sequence_  (a:as) = do a
                       sequence_ as           -- atentie la aliniere !!

Sequence_ se putea defini si intelege si ca un foldr, ca o schimbare a operatorilor cons ":" de pe lista cu secventierea (>>) (care se pronunta then ) a doua actiuni de IO. Valoarea initiala pentru foldr este bineinteles actiunea de IO vida: return ()

sequence_ = foldr (>>) (return () )

Nota: atat sequence cat si sequence_ ar trebui sa fie definite deja nu numai pentru Monada de IO ci si in general pentru oricare dintre monade. Tipul lor este de fapt mai general decat am scris mai sus.

Cum il aflati ?
tastati :t sequence
apoi
tastati :t sequence_


Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.

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