read -package:vector -package:relude package:storablevector
Control.Monad.ST.runST (do arr <- new_ 10; Monad.zipWithM_ (write arr) [9,8..0] ['a'..]; read arr 3)
Read an entire file strictly into a
Vector. This is far more
efficient than reading the characters into a
String and then
using
pack. It also may be more efficient than opening the file
and reading it using hGet. Files are read using 'binary mode' on
Windows.
The file can only closed after all values are consumed. That is you
must always assert that you consume all elements of the stream, and
that no values are missed due to lazy evaluation. This requirement
makes this function useless in many applications.
Returns
Just e, when the element
e could be read and
Nothing if the index was out of range. This way you can avoid
duplicate index checks that may be needed when using
read.
Control.Monad.ST.runST (do arr <- new_ 10; Monad.zipWithM_ (write arr) [9,8..0] ['a'..]; read arr 3)
In future
maybeRead will replace
read.