Difference between revisions of "De ce sunt mai bune actiunile de IO decat instructiunile de I/O ?"
(No difference)
|
Revision as of 20:13, 5 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.