Using Scalaz Stream for parsing task (replacing Scalaz Iteratees)
A scalaz-stream solution: import scalaz.std.vector._ import scalaz.syntax.traverse._ import scalaz.std.string._ val action = linesR(“example.txt”).map(_.trim). splitOn(“”).flatMap(_.traverseU { s => s.split(” “) match { case Array(form, pos) => emit(form -> pos) case _ => fail(new Exception(s”Invalid input $s”)) }}) We can demonstrate that it works: scala> action.collect.attempt.run.foreach(_.foreach(println)) Vector((no,UH), (,,,), (it,PRP), (was,VBD), (n’t,RB), (monday,NNP), (.,.)) Vector((the,DT), (equity,NN), (market,NN), (was,VBD), … Read more