> I had to implement a ring buffer, and I wanted the code using it to be > written in Haskell. I ended up implementing the buffer in C, and wrapping > it in FFI from Haskell because implementing a destructive array in Haskell > is kind of unwieldy to someone of my experience level. In Clean, it looks > like the uniqueness typing allows for destructive updates in a very > controlled manner. >
The ST monad provides this functionality. The never-instantiated-in-a-visible-way state parameter of the ST monad provides the "uniqueness" required for doing destructive updates in a pure way.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe