summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2006-10-10 16:00:00 +0000
committermichelou <michelou@epfl.ch>2006-10-10 16:00:00 +0000
commit2f0f432ebcbbdf6fb25c8f500ee2fffe6b8ed025 (patch)
tree401e18f07778ba1bb58d66eff6b91ede4146ab71
parentdcbcc2938384bd08794e6776c17e8c33b69672a7 (diff)
downloadscala-2f0f432ebcbbdf6fb25c8f500ee2fffe6b8ed025.tar.gz
scala-2f0f432ebcbbdf6fb25c8f500ee2fffe6b8ed025.tar.bz2
scala-2f0f432ebcbbdf6fb25c8f500ee2fffe6b8ed025.zip
updated docs/examples/*.scala
-rw-r--r--build.examples.xml2
-rw-r--r--docs/examples/fors.scala82
-rw-r--r--docs/examples/maps.scala46
-rw-r--r--docs/examples/parsers1.scala12
-rw-r--r--test/files/pos/viewtest1.scala19
-rw-r--r--test/files/pos/viewtest2.scala60
6 files changed, 108 insertions, 113 deletions
diff --git a/build.examples.xml b/build.examples.xml
index d0059d117e..9f9a7fa866 100644
--- a/build.examples.xml
+++ b/build.examples.xml
@@ -38,7 +38,7 @@ PROPERTIES
<property name="build.examples.dir" value="${build.dir}/examples"/>
<!-- tbd -->
<property name="excludes.compile"
- value="**/*current.*,**/fors.*,**/parsers2.*,**/typeinf.*"/>
+ value="**/*current.*,**/parsers2.*,**/typeinf.*"/>
<property name="excludes.run"
value="**/Parsers.*"/>
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))
}
}
diff --git a/docs/examples/maps.scala b/docs/examples/maps.scala
index 1b5d41df54..5b1af51ac3 100644
--- a/docs/examples/maps.scala
+++ b/docs/examples/maps.scala
@@ -90,18 +90,18 @@ object maps {
def extend(key: kt, value: vt): map =
if (key < k) new Node(k, v, l.extend(key, value), r)
else if (key > k) new Node(k, v, l, r.extend(key, value))
- else new Node(k, value, l, r);
+ else new Node(k, value, l, r)
def remove(key: kt): map =
if (key < k) new Node(k, v, l.remove(key), r)
else if (key > k) new Node(k, v, l, r.remove(key))
else if (l == empty) r
else if (r == empty) l
else {
- val midKey = r.domain.head;
+ val midKey = r.domain.head
new Node(midKey, r(midKey), l, r.remove(midKey))
}
- def domain: Stream[kt] = l.domain append Stream.cons(k, r.domain);
- def range: Stream[vt] = l.range append Stream.cons(v, r.range);
+ def domain: Stream[kt] = l.domain append Stream.cons(k, r.domain)
+ def range: Stream[vt] = l.range append Stream.cons(v, r.range)
}
}
@@ -129,24 +129,24 @@ object maps {
def remove(key: kt): map =
if (this == empty) this
- else if (key < k) { l = l.remove(key) ; this }
- else if (key > k) { r = r.remove(key) ; this }
+ else if (key < k) { l = l.remove(key); this }
+ else if (key > k) { r = r.remove(key); this }
else if (l == empty) r
else if (r == empty) l
else {
var mid = r
while (!(mid.l == empty)) { mid = mid.l }
- mid.r = r.remove(mid.k);
- mid.l = l;
+ mid.r = r.remove(mid.k)
+ mid.l = l
mid
}
def domain: Stream[kt] =
- if (this == empty) Stream.empty;
+ if (this == empty) Stream.empty
else l.domain append Stream.cons(k, r.domain)
def range: Stream[vt] =
- if (this == empty) Stream.empty;
+ if (this == empty) Stream.empty
else l.range append Stream.cons(v, r.range)
}
val empty = new MutMap(null, null)
@@ -157,21 +157,17 @@ object maps {
def month = m
def day = d
- override def compare [b >: Date <% Ordered[b]](that: b): Int = that match {
- case other: Date =>
- if ((year == other.year) &&
- (month == other.month) &&
- (day == other.day))
- 0
- else if ((year < other.year) ||
- (year == other.year && month < other.month) ||
- (month == other.month && day < other.day))
- -1
- else
- 1
- case _ =>
- -(that compareTo this)
- }
+ def compare(other: Date): Int =
+ if (year == other.year &&
+ month == other.month &&
+ day == other.day)
+ 0
+ else if (year < other.year ||
+ year == other.year && month < other.month ||
+ month == other.month && day < other.day)
+ -1
+ else
+ 1
override def equals(that: Any): Boolean =
that.isInstanceOf[Date] && {
diff --git a/docs/examples/parsers1.scala b/docs/examples/parsers1.scala
index cdd68470d4..c9029ffb11 100644
--- a/docs/examples/parsers1.scala
+++ b/docs/examples/parsers1.scala
@@ -1,4 +1,4 @@
-package examples;
+package examples
object parsers1 {
@@ -46,10 +46,10 @@ object parsers1 {
trait ListParsers extends Parsers {
def chr(p: char => boolean): Parser
- def chr(c: char): Parser = chr(d: char => d == c)
+ def chr(c: char): Parser = chr((d: char) => d == c)
- def letter : Parser = chr(c: char => Character.isLetter(c))
- def digit : Parser = chr(c: char => Character.isDigit(c))
+ def letter : Parser = chr((c: char) => Character.isLetter(c))
+ def digit : Parser = chr((c: char) => Character.isDigit(c))
def ident : Parser = letter &&& rep(letter ||| digit)
def number : Parser = digit &&& rep(digit)
@@ -60,9 +60,9 @@ object parsers1 {
trait ExprParsers extends Parsers {
def chr(p: char => boolean): Parser
- def chr(c: char): Parser = chr(d: char => d == c)
+ def chr(c: char): Parser = chr((d: char) => d == c)
- def digit : Parser = chr(c: char => Character.isDigit(c))
+ def digit : Parser = chr((c: char) => Character.isDigit(c))
def number : Parser = digit &&& rep(digit)
def summand : Parser = number ||| chr('(') &&& expr &&& chr(')')
def expr : Parser = summand &&& rep(chr('+') &&& summand)
diff --git a/test/files/pos/viewtest1.scala b/test/files/pos/viewtest1.scala
index 0a59fdad58..46acefa32e 100644
--- a/test/files/pos/viewtest1.scala
+++ b/test/files/pos/viewtest1.scala
@@ -1,25 +1,26 @@
-package test;
+package test
trait Ordered[a] {
- def < (x: a): boolean;
+ def < (x: a): boolean
}
object O {
implicit def view (x: String): Ordered[String] = new Ordered[String] {
- def < (y: String) = x.compareTo(y) < 0;
+ def < (y: String) = x.compareTo(y) < 0
}
}
-object Empty extends Tree[All];
-case class Node[c <% Ordered[c]](elem: c, l: Tree[c], r: Tree[c]) extends Tree[c];
+object Empty extends Tree[All]
+case class Node[c <% Ordered[c]](elem: c, l: Tree[c], r: Tree[c]) extends Tree[c]
trait Tree[+a <% Ordered[a]] {
def insert[b >: a <% Ordered[b]](x: b): Tree[b] = this match {
- case Empty => new Node(x, Empty, Empty)
+ case Empty =>
+ new Node(x, Empty, Empty)
case Node(elem, l, r) =>
if (x == elem) this
else if (x < elem) Node(elem, l insert x, r)
- else Node(elem, l, r insert x);
+ else Node(elem, l, r insert x)
}
def elements: List[a] = this match {
case Empty => List()
@@ -29,10 +30,10 @@ trait Tree[+a <% Ordered[a]] {
}
object Test {
- import O.view;
+ import O.view
def main(args: Array[String]) = {
- var t: Tree[String] = Empty;
+ var t: Tree[String] = Empty
for (val s <- args) {
t = t insert s
}
diff --git a/test/files/pos/viewtest2.scala b/test/files/pos/viewtest2.scala
index 51df563633..70257baa29 100644
--- a/test/files/pos/viewtest2.scala
+++ b/test/files/pos/viewtest2.scala
@@ -1,4 +1,4 @@
-package test;
+package test
/** A trait for totally ordered data.
*/
@@ -10,15 +10,15 @@ trait Ordered[+a] {
* x == 0 iff this == that
* x > 0 iff this > that
*/
- def compareTo [b >: a <% Ordered[b]](that: b): int;
+ def compareTo [b >: a <% Ordered[b]](that: b): int
- def < [b >: a <% Ordered[b]](that: b): boolean = (this compareTo that) < 0;
+ def < [b >: a <% Ordered[b]](that: b): boolean = (this compareTo that) < 0
- def > [b >: a <% Ordered[b]](that: b): boolean = (this compareTo that) > 0;
+ def > [b >: a <% Ordered[b]](that: b): boolean = (this compareTo that) > 0
- def <= [b >: a <% Ordered[b]](that: b): boolean = (this compareTo that) <= 0;
+ def <= [b >: a <% Ordered[b]](that: b): boolean = (this compareTo that) <= 0
- def >= [b >: a <% Ordered[b]](that: b): boolean = (this compareTo that) >= 0;
+ def >= [b >: a <% Ordered[b]](that: b): boolean = (this compareTo that) >= 0
}
@@ -26,13 +26,13 @@ object O {
implicit def view1(x: String): Ordered[String] = new Ordered[String] {
def compareTo [b >: String <% Ordered[b]](y: b): int = y match {
- case y1: String => x compareTo y1;
+ case y1: String => x compareTo y1
case _ => -(y compareTo x)
}
}
implicit def view2(x: char): Ordered[char] = new Ordered[char] {
def compareTo [b >: char <% Ordered[b]](y: b): int = y match {
- case y1: char => x - y1;
+ case y1: char => x - y1
case _ => -(y compareTo x)
}
}
@@ -40,37 +40,37 @@ object O {
implicit def view3[a <% Ordered[a]](x: List[a]): Ordered[List[a]] =
new Ordered[List[a]] {
def compareTo [b >: List[a] <% Ordered[b]](y: b): int = y match {
- case y1: List[a] => compareLists(x, y1);
- case _ => -(y compareTo x)
+ case y1: List[a] => compareLists(x, y1)
+ case _ => -(y compareTo x)
}
private def compareLists(xs: List[a], ys: List[a]): int = {
- if (xs.isEmpty && ys.isEmpty) 0
- else if (xs.isEmpty) -1
- else if (ys.isEmpty) 1
- else {
- val s = xs.head compareTo ys.head;
- if (s != 0) s
- else compareLists(xs.tail, ys.tail)
- }
+ if (xs.isEmpty && ys.isEmpty) 0
+ else if (xs.isEmpty) -1
+ else if (ys.isEmpty) 1
+ else {
+ val s = xs.head compareTo ys.head;
+ if (s != 0) s
+ else compareLists(xs.tail, ys.tail)
+ }
}
}
}
trait Tree[+a <% Ordered[a]] {
- def insert[b >: a <% Ordered[b]](x: b): Tree[b];
+ def insert[b >: a <% Ordered[b]](x: b): Tree[b]
def elements: List[a]
}
object Empty extends Tree[All] {
- def insert[b >: All <% Ordered[b]](x: b): Tree[b] = new Node(x, Empty, Empty);
- def elements: List[All] = List();
+ def insert[b >: All <% Ordered[b]](x: b): Tree[b] = new Node(x, Empty, Empty)
+ def elements: List[All] = List()
}
class Node[a <% Ordered[a]](elem: a, l: Tree[a], r: Tree[a]) extends Tree[a] {
def insert[b >: a <% Ordered[b]](x: b): Tree[b] =
if (x == elem) this
else if (x < elem) new Node(elem, l insert x, r)
- else new Node(elem, l, r insert x);
+ else new Node(elem, l, r insert x)
def elements: List[a] =
l.elements ::: List(elem) ::: r.elements
}
@@ -83,31 +83,31 @@ case class Str(elem: String) extends Ordered[Str] {
}
object Test {
- import O._;
+ import O._
private def toCharList(s: String): List[Char] =
if (s.length() == 0) List()
- else s.charAt(0) :: toCharList(s.substring(1));
+ else s.charAt(0) :: toCharList(s.substring(1))
def main(args: Array[String]) = {
{
- var t: Tree[String] = Empty;
+ var t: Tree[String] = Empty
for (val s <- args) {
- t = t insert s
+ t = t insert s
}
System.out.println(t.elements)
}
{
- var t: Tree[Str] = Empty;
+ var t: Tree[Str] = Empty
for (val s <- args) {
- t = t insert Str(s)
+ t = t insert Str(s)
}
System.out.println(t.elements)
}
{
- var t: Tree[List[char]] = Empty;
+ var t: Tree[List[char]] = Empty
for (val s <- args) {
- t = t insert toCharList(s)
+ t = t insert toCharList(s)
}
System.out.println(t.elements)
}