view chapter7/yield.scala @ 0:b316eec6fa7a draft default tip

add sample files
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 08 Jan 2013 16:41:46 +0900
parents
children
line wrap: on
line source

val filesHere = (new java.io.File(".")).listFiles
def fileLines(file: java.io.File) =
    scala.io.Source.fromFile(file).getLines.toList
def scalaFiles = 
    for {
	file <- filesHere
	if file.getName.endsWith(".scala")
    } yield file

for (f <- scalaFiles) println(f.getName)

val forLineLengths = 
    for {
	file <- filesHere
	if file.getName.endsWith(".scala")
	line <- fileLines(file)
	trimmed = line.trim
	if trimmed.matches(".*for.*")
    } yield trimmed.length

for (i <- forLineLengths) println(i)