Personal tools

De ce sunt mai bune actiunile de IO decat instructiunile de I/O ?

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m
m
 
(One intermediate revision by one user not shown)
Line 1: Line 1:
Sunt mai multe motive. Actiunile de IO sunt mult mai flexibile decat instructiunile de IO. Intr-un limbaj de programare obisnuit, de acum doua trei decenii, compilat sau nu, '''ar fi fost dificil sa manipulati instructiunile de I?O succesive schimbandu-le dinamic ordinea''' la executie, rulindu-le intr-un sens apoi in altul sau pe sarite, dupa gust si nevoi.
+
[[Category:Ro]]
  +
Sunt mai multe motive. Actiunile de IO sunt mult mai flexibile decat instructiunile de IO. Intr-un limbaj de programare obisnuit, de acum doua trei decenii, compilat sau nu, '''ar fi fost dificil sa manipulati instructiunile de I/O succesive schimbandu-le dinamic ordinea''' la executie, rulindu-le intr-un sens apoi in altul sau pe sarite, dupa gust si nevoi.
   
 
Iata un exemplu in care aceleasi trei instructiuni de scriere care formeaza un bloc implementat ca lista sunt rulate in ordine, in ordine inversa apoi pe sarite (se sare peste prima).
 
Iata un exemplu in care aceleasi trei instructiuni de scriere care formeaza un bloc implementat ca lista sunt rulate in ordine, in ordine inversa apoi pe sarite (se sare peste prima).
Line 30: Line 30:
   
 
Se pot imagina si exemple putin mai elaborate. De exemplu programul main cere un caracter si dupa cum el este 1 sau 2 sau 3 executa aceeasi secventa in ordine diferita.
 
Se pot imagina si exemple putin mai elaborate. De exemplu programul main cere un caracter si dupa cum el este 1 sau 2 sau 3 executa aceeasi secventa in ordine diferita.
  +
<br>
  +
Notati si faptul ca acest mic exemplu cu schimbarea ordinii nu este principalul
  +
sau singurul raspuns posibil la intrebarea privitoare la superioritatea ''actiunilor de IO'' asupra ''instructiunilor de I/O'' din limbajele traditionale. Mai exista si alte motive.
 
----
 
----
[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 21:39, 25 January 2008

Sunt mai multe motive. Actiunile de IO sunt mult mai flexibile decat instructiunile de IO. Intr-un limbaj de programare obisnuit, de acum doua trei decenii, compilat sau nu, ar fi fost dificil sa manipulati instructiunile de I/O succesive schimbandu-le dinamic ordinea la executie, rulindu-le intr-un sens apoi in altul sau pe sarite, dupa gust si nevoi.

Iata un exemplu in care aceleasi trei instructiuni de scriere care formeaza un bloc implementat ca lista sunt rulate in ordine, in ordine inversa apoi pe sarite (se sare peste prima).

module Main where
 
 
todolist ::[ IO () ]
 
todolist = [ putStr " seful " , putStr " este " , putStr " aclamat " ]


Constanta todolist este o lista de actiuni de IO.


Executia interactiva a setului de instructiuni:

Main> sequence_ $ reverse todolist
 aclamat  este  seful
Main> sequence_ todolist
 seful  este  aclamat
Main> sequence_ $ tail todolist
 este  aclamat
Main>

Se pot imagina si exemple putin mai elaborate. De exemplu programul main cere un caracter si dupa cum el este 1 sau 2 sau 3 executa aceeasi secventa in ordine diferita.
Notati si faptul ca acest mic exemplu cu schimbarea ordinii nu este principalul sau singurul raspuns posibil la intrebarea privitoare la superioritatea actiunilor de IO asupra instructiunilor de I/O din limbajele traditionale. Mai exista si alte motive.


Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la Intrebarile incepatorului Ro/Haskell.