Welcome to Scala version 2.7.7.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_17). Type in expressions to have them evaluated. Type :help for more information. scala> def hello() = println("hello, world") hello: ()Unit scala> hello() hello, world scala> var x : Int = 5 x: Int = 5 scala> x res1: Int = 5 scala> var y = 5 y: Int = 5 scala> var b : Boolean = true b: Boolean = true scala> var d = 0.5 d: Double = 0.5 scala> var s = "hello" s: java.lang.String = hello scala> def findBest(ints : Array[Int], compare : (Int,Int)=>Boolean) : Int = { | var best : Int = ints(0) | for (i <- 1 until ints.length) { | if (compare(ints(i), best)) | best = ints(i) | } | best | } findBest: (Array[Int],(Int, Int) => Boolean)Int scala> def lessThan(x : Int, y : Int) : Boolean = x < y lessThan: (Int,Int)Boolean scala> def greaterThan(x : Int, y) = x > y :1: error: ':' expected but ')' found. def greaterThan(x : Int, y) = x > y ^ scala> def greaterThan(x : Int, y : Int) = x > y greaterThan: (Int,Int)Boolean scala> lessThan(3, 4) res2: Boolean = true scala> lessThan(3, 3) res3: Boolean = false scala> var array = Array(2, 7, -9. 10, 15) :1: error: ')' expected but integer literal found. var array = Array(2, 7, -9. 10, 15) ^ scala> var array = Array(2, 7, -9, 10, 15) array: Array[Int] = Array(2, 7, -9, 10, 15) scala> findBest(array, lessThan) res4: Int = -9 scala> findBest(array, greaterThan) res5: Int = 15 scala> findBest(array, (x : Int, y : Int) => x < y) res6: Int = -9 scala> array.map((x : Int) => 2 * x) res7: Array[Int] = Array(4, 14, -18, 20, 30) scala> array res8: Array[Int] = Array(2, 7, -9, 10, 15) scala> array.map((x : Int) => x * x) res9: Array[Int] = Array(4, 49, 81, 100, 225) scala> array res10: Array[Int] = Array(2, 7, -9, 10, 15) scala> array res11: Array[Int] = Array(2, 7, -9, 10, 15) scala> array.filter((x : Int) => x % 2 == 0) res12: Array[Int] = Array(2, 10) scala> array.filter((x : Int) => x % 2 != 0) res13: Array[Int] = Array(7, -9, 15) scala> array.reduceLeft((x : Int, y : Int) => x + y) res14: Int = 25 scala> array res15: Array[Int] = Array(2, 7, -9, 10, 15) scala> array.filter((x : Int) => x % 2 == 0).reduceLeft((x : Int, y : Int) => x + y) res16: Int = 12 scala> array.filter((x : Int) => x % 2 != 0).reduceLeft((x : Int, y : Int) => x + y) res17: Int = 13 scala> def factors(x : Int) = | (1 to x).toArray.filter((y : Int) => x % y == 0) factors: (Int)Array[Int] scala> factors(10) res18: Array[Int] = Array(1, 2, 5, 10) scala> factors(100) res19: Array[Int] = Array(1, 2, 4, 5, 10, 20, 25, 50, 100) scala> factors(124) res20: Array[Int] = Array(1, 2, 4, 31, 62, 124) scala> factors(24) res21: Array[Int] = Array(1, 2, 3, 4, 6, 8, 12, 24) scala> factors(73) res22: Array[Int] = Array(1, 73) scala> def prime(x : Int) = factors(x) == Array(1, x) prime: (Int)Boolean scala> prime(24) res23: Boolean = false scala> prime(2) res24: Boolean = false scala> def prime(x : Int) = factors(x).equals(Array(1, x)) prime: (Int)Boolean scala> prime(2) res25: Boolean = false scala> def prime(x : Int) = factors(x).length == 2 prime: (Int)Boolean scala> prime(2) res26: Boolean = true scala> prime(1) res27: Boolean = false scala> (1 to 100).filter(prime) res28: Seq.Projection[Int] = RangeF(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97) scala> (1 to 100).toArray.shuffle :5: error: value shuffle is not a member of Array[B] (1 to 100).toArray.shuffle ^ scala> val array = Array(2, 43, 12, 56, 23, 67, 234, 4567, 123, 567, -12, 2345) array: Array[Int] = Array(2, 43, 12, 56, 23, 67, 234, 4567, 123, 567, -12, 2345) scala> array.sort() :6: error: value sort is not a member of Array[Int] array.sort() ^ scala> array.sort(lessThan) :9: error: value sort is not a member of Array[Int] array.sort(lessThan) ^ scala> array.toList res32: List[Int] = List(2, 43, 12, 56, 23, 67, 234, 4567, 123, 567, -12, 2345) scala> val lst = array.toList lst: List[Int] = List(2, 43, 12, 56, 23, 67, 234, 4567, 123, 567, -12, 2345) scala> lst.sort :7: error: missing arguments for method sort in class List; follow this method with `_' if you want to treat it as a partially applied function lst.sort ^ scala> lst.sort(lessThan) res34: List[Int] = List(-12, 2, 12, 23, 43, 56, 67, 123, 234, 567, 2345, 4567) scala> lst.sort(greaterThan) res35: List[Int] = List(4567, 2345, 567, 234, 123, 67, 56, 43, 23, 12, 2, -12) scala> lst.sort((x : Int, y : Int) => x % 5 < y % 5) res36: List[Int] = List(-12, 2345, 56, 4567, 67, 567, 12, 2, 43, 23, 123, 234) scala> lst.sort((x : Int, y : Int) => if (x % 5 != y % 5) x % 5 < y % 5 else x < y) res37: List[Int] = List(-12, 2345, 56, 2, 12, 67, 567, 4567, 23, 43, 123, 234) scala> lst.sort((x : Int, y : Int) => if (x % 5 != y % 5) 6 else 3) :9: error: type mismatch; found : Int(6) required: Boolean lst.sort((x : Int, y : Int) => if (x % 5 != y % 5) 6 else 3) ^ scala> def foo(x : Int) = (true, x) foo: (Int)(Boolean, Int) scala> foo(4) res39: (Boolean, Int) = (true,4) scala> var thing = foo(6) thing: (Boolean, Int) = (true,6) scala> thing res40: (Boolean, Int) = (true,6) scala>