From 2f0f432ebcbbdf6fb25c8f500ee2fffe6b8ed025 Mon Sep 17 00:00:00 2001 From: michelou Date: Tue, 10 Oct 2006 16:00:00 +0000 Subject: updated docs/examples/*.scala --- docs/examples/fors.scala | 82 +++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 42 deletions(-) (limited to 'docs/examples/fors.scala') diff --git a/docs/examples/fors.scala b/docs/examples/fors.scala index 6c969d3519..3de4ba52b7 100644 --- a/docs/examples/fors.scala +++ b/docs/examples/fors.scala @@ -1,48 +1,48 @@ -package examples; +package examples -import scala.xml._; +import scala.xml._ object fors { - val e = Node.NoAttributes ; + val e = Node.NoAttributes class Person(_name: String, _age: Int) { - val name = _name; - val age = _age; + val name = _name + val age = _age } def printOlderThan20(xs: Seq[Person]): Iterator[String] = - printOlderThan20(xs.elements); + printOlderThan20(xs.elements) def printOlderThan20(xs: Iterator[Person]): Iterator[String] = - for (val p <- xs; p.age > 20) yield p.name; + for (val p <- xs; p.age > 20) yield p.name val persons = List( new Person("John", 40), new Person("Richard", 68) - ); + ) def divisors(n: Int): List[Int] = - for (val i <- List.range(1, n+1); n % i == 0) yield i; + for (val i <- List.range(1, n+1); n % i == 0) yield i - def isPrime(n: Int) = divisors(n).length == 2; + def isPrime(n: Int) = divisors(n).length == 2 def findNums(n: Int): Iterator[Pair[Int, Int]] = for (val i <- Iterator.range(1, n); val j <- Iterator.range(1, i-1); - isPrime(i+j)) yield Pair(i, j); + isPrime(i+j)) yield Pair(i, j) def sum(xs: List[Double]): Double = xs.foldLeft(0.0) { (x, y) => x + y } def scalProd(xs: List[Double], ys: List[Double]) = - sum(for(val Pair(x, y) <- xs zip ys) yield x * y); + sum(for(val Pair(x, y) <- xs zip ys) yield x * y) - type Lst = List[Any]; + type Lst = List[Any] - val prefix = null; - val scope = TopScope; + val prefix = null + val scope = TopScope val books = List( Elem(prefix, "book", e, scope, @@ -62,53 +62,51 @@ object fors { Elem(prefix, "book", e, scope, Elem(prefix, "title", e, scope, Text("Programming in Modula-2")), - Elem(prefix, "author", e, scope, + Elem(prefix, "author", e, scope, Text("Wirth, Niklaus"))) - ); + ) def findAuthor(books: Lst) = - for (val Elem(_, "book", _, scope, book @ _*) <- books; - val Elem(_, "title", _, scope, Text(title)) <- book; + for (val Elem(_, "book", _, _, book @ _*) <- books; + val Elem(_, "title", _, _, Text(title)) <- book.toList; (title indexOf "Program") >= 0; - val Elem(_, "author", _, scope, Text(author)) <- book) yield author; + val Elem(_, "author", _, _, Text(author)) <- List(book)) yield author - for (val Elem(_, "book", _, scope, b @ _*) <- books; - val Elem(_, "author", _, scope, Text(author)) <- b; + for (val Elem(_, "book", _, _, book @ _*) <- books; + val Elem(_, "author", _, _, Text(author)) <- book.toList; author startsWith "Ullman"; - val Elem(_, "title", _, scope, Text(title)) <- b) yield title; + val Elem(_, "title", _, _, Text(title)) <- List(book)) yield title removeDuplicates( - for (val Elem(_, "book", _, scope, b1 @ _* ) <- books; - val Elem(_, "book", _, scope, b2 @ _*) <- books; - b1 != b2; - val Elem(_, "author", _, scope, Text(a1)) <- b1; - val Elem(_, "author", _, scope, Text(a2)) <- b2; - a1 == a2) yield Pair(a1, a2)); + for (val Elem(_, "book", _, _, b1 @ _* ) <- books; + val Elem(_, "book", _, _, b2 @ _*) <- books; + b1 != b2; + val Elem(_, "author", _, _, Text(a1)) <- b1.toList; + val Elem(_, "author", _, _, Text(a2)) <- b2.toList; + a1 == a2) yield Pair(a1, a2)) def removeDuplicates[a](xs: List[a]): List[a] = if (xs.isEmpty) xs else - xs.head :: removeDuplicates(for (val x <- xs.tail; x != xs.head) yield x); + xs.head :: removeDuplicates(for (val x <- xs.tail; x != xs.head) yield x) def main(args: Array[String]) = { - Console.print("Persons over 20:"); - printOlderThan20(persons) foreach { x => Console.print(" " + x) }; - Console.println; + Console.print("Persons over 20:") + printOlderThan20(persons) foreach { x => Console.print(" " + x) } + Console.println - Console.println("divisors(34) = " + divisors(34)); + Console.println("divisors(34) = " + divisors(34)) Console.print("findNums(15) ="); - findNums(15) foreach { x => Console.print(" " + x); }; - Console.println; + findNums(15) foreach { x => Console.print(" " + x); } + Console.println - val xs = List(3.5, 5.0, 4.5); - Console.println("average(" + xs + ") = " - + sum(xs) / xs.length); + val xs = List(3.5, 5.0, 4.5) + Console.println("average(" + xs + ") = " + sum(xs) / xs.length) - val ys = List(2.0, 1.0, 3.0); - Console.println("scalProd(" + xs + ", " + ys +") = " - + scalProd(xs, ys)); + val ys = List(2.0, 1.0, 3.0) + Console.println("scalProd(" + xs + ", " + ys +") = " + scalProd(xs, ys)) } } -- cgit v1.2.3