Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.{ Reader, FileReader }
- import scalaz._, Scalaz._
- import effect._, IO._
- import iteratee._, Iteratee._
- object App extends SafeApp{
- val separator = sys.props("line.separator").head
- override def run(args: ImmutableArray[String]): IO[Unit] = {
- val r = new FileReader("test2.txt")
- byEnumerator(r)
- }
- type IEOC = IoExceptionOr[Char]
- def byEnumerator(r: Reader): IO[Unit] = {
- val lineIter = takeWhile[IEOC, Stream](_ map (_ =/= separator) valueOr false) map (_.length)
- val iter = repeatBuild[IEOC, Int, Stream](lineIter).up[IO] map (_.sum)
- val enum = enumReader(r)
- val read = iter &= enum
- (read.run >>= putOut) >> putStrLn("")
- }
- }
Add Comment
Please, Sign In to add comment