diff options
author | Matthias Zenger <mzenger@gmail.com> | 2003-06-27 13:52:44 +0000 |
---|---|---|
committer | Matthias Zenger <mzenger@gmail.com> | 2003-06-27 13:52:44 +0000 |
commit | 0e53b38aed8bed504c0463b4fd1a9d6fe3699dd7 (patch) | |
tree | cc05fbb5c00b7535863c294df8e3c10ce44aed06 /sources | |
parent | 5a0ab443e53e2fbeb8e807d1ad6df19988c1d68f (diff) | |
download | scala-0e53b38aed8bed504c0463b4fd1a9d6fe3699dd7.tar.gz scala-0e53b38aed8bed504c0463b4fd1a9d6fe3699dd7.tar.bz2 scala-0e53b38aed8bed504c0463b4fd1a9d6fe3699dd7.zip |
Did some refactoring.
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scala/DefaultMapModel.scala | 11 | ||||
-rw-r--r-- | sources/scala/HashSet.scala | 2 | ||||
-rw-r--r-- | sources/scala/HashTable.scala | 2 | ||||
-rw-r--r-- | sources/scala/Iterator.scala | 9 | ||||
-rw-r--r-- | sources/scala/ListMap.scala | 5 | ||||
-rw-r--r-- | sources/scala/Map.scala | 4 | ||||
-rw-r--r-- | sources/scala/MutableList.scala | 4 | ||||
-rw-r--r-- | sources/scala/Predef.scala | 2 | ||||
-rw-r--r-- | sources/scala/Queue.scala | 16 | ||||
-rw-r--r-- | sources/scala/Set.scala | 9 |
10 files changed, 36 insertions, 28 deletions
diff --git a/sources/scala/DefaultMapModel.scala b/sources/scala/DefaultMapModel.scala index 36224bcaa3..2e272dc59b 100644 --- a/sources/scala/DefaultMapModel.scala +++ b/sources/scala/DefaultMapModel.scala @@ -14,11 +14,9 @@ package scala; trait DefaultMapModel[A, B] extends MutableMap[A, B] { - protected def findEntry(key: A): Option[Entry]; + protected def findEntry(key: A): Option[Entry]; - protected def addEntry(e: Entry): Unit; - - protected def removeEntry(key: A): Unit; + protected def addEntry(e: Entry): Unit; protected def entries: Iterator[Entry]; @@ -32,11 +30,6 @@ trait DefaultMapModel[A, B] extends MutableMap[A, B] { case Some(e) => e.value = value; } - def remove(key: A) = findEntry(key) match { - case None => null; - case Some(e) => removeEntry(key); e.value; - } - def elements = new Iterator[Pair[A, B]] { val iter = entries; def hasNext = iter.hasNext; diff --git a/sources/scala/HashSet.scala b/sources/scala/HashSet.scala index 763222b526..7674a4f5a8 100644 --- a/sources/scala/HashSet.scala +++ b/sources/scala/HashSet.scala @@ -23,8 +23,6 @@ class HashSet[A] extends Set[A] with HashTable[A] { case Some(_) => } - def remove(elem: A): Unit = removeEntry(elem); - def elements = entries; protected type Entry = A; diff --git a/sources/scala/HashTable.scala b/sources/scala/HashTable.scala index c1d3042be4..2e0171f8b2 100644 --- a/sources/scala/HashTable.scala +++ b/sources/scala/HashTable.scala @@ -53,7 +53,7 @@ abstract class HashTable[A] { resize(2 * table.length); } - protected def removeEntry(key: A): Unit = { + def remove(key: A): Unit = { val old = findEntry(key); old match { case None => diff --git a/sources/scala/Iterator.scala b/sources/scala/Iterator.scala index 8325f0e5a6..3b7a6a9f43 100644 --- a/sources/scala/Iterator.scala +++ b/sources/scala/Iterator.scala @@ -1,3 +1,12 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +** $Id$ +\* */ + package scala; trait Iterator[+a] { diff --git a/sources/scala/ListMap.scala b/sources/scala/ListMap.scala index bdf316b22d..5c6b5ed5bc 100644 --- a/sources/scala/ListMap.scala +++ b/sources/scala/ListMap.scala @@ -10,8 +10,7 @@ package scala; -class ListMap[A, B] extends MutableMap[A, B] - with DefaultMapModel[A, B] { +class ListMap[A, B] extends MutableMap[A, B] with DefaultMapModel[A, B] { var xs: List[Entry] = Nil; @@ -23,7 +22,7 @@ class ListMap[A, B] extends MutableMap[A, B] protected def addEntry(e: Entry) = { xs = e :: xs; } - protected def removeEntry(key: A) = { xs = xs filter {e => e.key != key}; } + def remove(key: A) = { xs = xs filter {e => e.key != key}; } protected def entries = xs.elements; } diff --git a/sources/scala/Map.scala b/sources/scala/Map.scala index 0a42a7fccd..3441d6e99e 100644 --- a/sources/scala/Map.scala +++ b/sources/scala/Map.scala @@ -20,13 +20,13 @@ trait Map[A, +B] with Function1[A, B] def isEmpty: Boolean = (size == 0); def apply(key: A): B = get(key) match { - case None => null + case None => error("key not found") case Some(value) => value } def get(key: A): Option[B]; - def remove(key: A): B; + def remove(key: A): Unit; def contains(key: A): Boolean = get(key) match { case None => false diff --git a/sources/scala/MutableList.scala b/sources/scala/MutableList.scala index d540221284..d30a388634 100644 --- a/sources/scala/MutableList.scala +++ b/sources/scala/MutableList.scala @@ -29,14 +29,14 @@ class MutableList[A] with Seq[A] with PartialFunction[Int, A] { def at(n: Int): A = apply(n); - protected def prependElem(elem: A) = { + protected def prependElem(elem: A): Unit = { first = new LinkedList[A](elem, first); if (len == 0) last = first; len = len + 1; } - protected def appendElem(elem: A) = { + protected def appendElem(elem: A): Unit = { if (len == 0) prependElem(elem); else { diff --git a/sources/scala/Predef.scala b/sources/scala/Predef.scala index 33a5cb7987..895b3087cc 100644 --- a/sources/scala/Predef.scala +++ b/sources/scala/Predef.scala @@ -33,7 +33,7 @@ object Predef { set; } - def Map[A, B](mappings: Pair[A, B]*): Map[A, B] = { + def Map[A, B](mappings: Pair[A, B]*): MutableMap[A, B] = { val map = new HashMap[A, B]; map.putMap(mappings); map; diff --git a/sources/scala/Queue.scala b/sources/scala/Queue.scala index 2d885c2856..7ab2011bea 100644 --- a/sources/scala/Queue.scala +++ b/sources/scala/Queue.scala @@ -18,14 +18,14 @@ class Queue[A] with MutableList[A] { def enqueue(elems: A*): Unit = (this += elems); - def dequeue(): A = { - if (first == null) - error("queue empty"); - else { - val res = first.elem; - first = first.next; - res; - } + def dequeue: A = { + if (first == null) + error("queue empty"); + else { + val res = first.elem; + first = first.next; + res; + } } def clear: Unit = reset; diff --git a/sources/scala/Set.scala b/sources/scala/Set.scala index 6f6074247e..5da0dddd08 100644 --- a/sources/scala/Set.scala +++ b/sources/scala/Set.scala @@ -63,6 +63,15 @@ trait Set[A] with Iterable[A] { elem => if (p(elem)) remove(elem); } + def exists(p: A => Boolean): Boolean = { + val iter = elements; + var res = false; + while (!res && iter.hasNext) { + if (p(iter.next)) { res = true; } + } + res; + } + def toList: List[A] = { var res: List[A] = Nil; val iter = elements; |