/* * Copyright (C) 2007-2020 Artima, Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Automatically generated Scala interpreter transcript from: * * Programming in Scala (Fifth Edition) * by Martin Odersky, Lex Spoon, Bill Venners, and Frank Sommers * * http://booksites.artima.com/programming_in_scala_5ed */ scala> trait Philosophical: def philosophize = "I consume memory, therefore I am!" ^ error: ';' expected but ':' found. scala> class Frog extends Philosophical: override def toString = "green" ^ error: ';' expected but ':' found. scala> class Rational(n: Int, d: Int) extends Ordered[Rational]: def compare(that: Rational) = (this.numer * that.denom) - (that.numer * this.denom) private val g = gcd(n.abs, d.abs) val numer = n / g val denom = d / g private def gcd(a: Int, b: Int): Int = if (b == 0) a else gcd(b, a % b) override def toString = s"$numer/$denom" ^ error: ';' expected but ':' found. scala> abstract class IntQueue: def get(): Int def put(x: Int): Unit ^ error: ';' expected but ':' found. scala> import scala.collection.mutable.ArrayBuffer class BasicIntQueue extends IntQueue: private val buf = ArrayBuffer.empty[Int] def get() = buf.remove(0) def put(x: Int) = buf += x class BasicIntQueue extends IntQueue: ^ On line 3: error: ';' expected but ':' found. scala> trait Doubling extends IntQueue: abstract override def put(x: Int) = super.put(2 * x) ^ error: ';' expected but ':' found. scala> trait Incrementing extends IntQueue: abstract override def put(x: Int) = super.put(x + 1) ^ error: ';' expected but ':' found. scala> trait Filtering extends IntQueue: abstract override def put(x: Int) = if x >= 0 then super.put(x) ^ error: ';' expected but ':' found. if x >= 0 then super.put(x) ^ On line 3: warning: then is a reserved word (since 2.10.0); usage as an identifier is deprecated scala> val frog = new Frog("Hopscotch") ^ error: not found: type Frog