Guest User

Untitled

a guest
Oct 16th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. import java.io.{ Reader, FileReader }
  2.  
  3. import scalaz._, Scalaz._
  4. import effect._, IO._
  5. import iteratee._, Iteratee._
  6.  
  7. object App extends SafeApp{
  8. val separator = sys.props("line.separator").head
  9.  
  10. override def run(args: ImmutableArray[String]): IO[Unit] = {
  11. val r = new FileReader("test2.txt")
  12. byEnumerator(r)
  13. }
  14.  
  15. type IEOC = IoExceptionOr[Char]
  16.  
  17. def byEnumerator(r: Reader): IO[Unit] = {
  18. val lineIter = takeWhile[IEOC, Stream](_ map (_ =/= separator) valueOr false) map (_.length)
  19. val iter = repeatBuild[IEOC, Int, Stream](lineIter).up[IO] map (_.sum)
  20. val enum = enumReader(r)
  21. val read = iter &= enum
  22. (read.run >>= putOut) >> putStrLn("")
  23. }
  24. }
Add Comment
Please, Sign In to add comment