Hacker News new | past | comments | ask | show | jobs | submit login

In a lazy language, you have a significant difficulty in ensuring

the order of operations, specifically printing a prompt and reading the answer. Before someone (Mogi?) realized that a category theoretical monad with specific rules made IO sequencing trivial, the state of the art (IIRC) was world-passing. (With world-passing, you have a value that represents the state of everything outside the program; any IO operation absorbs the current world value and returns a new one. Only the most current value actually works.)

I don't know if it is still the case, but the last time I poked around, in GHC the IO monad was implemented using the older world-passing code.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: