Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.01 KB | None | 0 0
  1. /* Zadanie 3 */ class EmptyQueueException(message: String) extends Exception(message) class Queue[+T] private (private val list1: List[T], private val list2: List[T]) { def this() = this(Nil, Nil) def enqueue[S >: T](x: S) = if (list1 == Nil) new Queue(x :: Nil, Nil) else new Queue(list1, x :: list2) def dequeue = (list1, list2) match { case (_ :: Nil, list2) => new Queue(list2.reverse, Nil) case (_ :: list1, list2) => new Queue(list1, list2) case (Nil, _) => new Queue(Nil, Nil) } def first = list1 match { case (el :: _) => el case Nil => throw new EmptyQueueException("Pusta kolejka") } def isEmpty = list1 == Nil } object Queue { def apply[T](xs: T*) = new Queue[T](xs.toList.reverse, Nil) def empty[T] = new Queue[T](Nil, Nil) } /* Zadanie 4 */ import scala.collection.mutable def copy[T](dest: mutable.Seq[T], source: mutable.Seq[T]) { require(dest.length >= source.length) var index = 0 source.foreach(el => { dest.update(index, el); index += 1 }) } val a = mutable.Seq(1, 2) val b = mutable.Seq(3, 4) copy(a, b) println(a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement