scala> 1 res0: Int = 1 scala> 1.0 res1: Double = 1.0 scala> () scala> "abc" res3: String = abc scala> (1, 2) res4: (Int, Int) = (1,2) scala> scala> { import scala.Predef.ArrowAssoc; 1 -> 2 } res5: (Int, Int) = (1,2) scala> { import scala.Predef.ArrowAssoc; 1 → 2 } res6: (Int, Int) = (1,2) scala> 1 -> 2 :12: error: value -> is not a member of Int 1 -> 2 ^ scala> 1 → 2 :12: error: value → is not a member of Int 1 → 2 ^ scala> scala> val answer = 42 answer: Int = 42 scala> { import scala.StringContext; s"answer: $answer" } res9: String = answer: 42 scala> s"answer: $answer" :13: error: not found: value StringContext s"answer: $answer" ^ scala> scala> "abc" + true res11: String = abctrue scala> scala> { import scala.Predef.any2stringadd; true + "abc" } res12: String = trueabc scala> true + "abc" :12: error: value + is not a member of Boolean true + "abc" ^ scala> scala> var x = 10 x: Int = 10 scala> var y = 11 y: Int = 11 scala> x = 12 x: Int = 12 scala> y = 13 y: Int = 13 scala> scala> 2 ; 3 :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 2 ;; ^ res14: Int = 3 scala> { 2 ; 3 } :12: warning: a pure expression does nothing in statement position; multiline expressions might require enclosing parentheses { 2 ; 3 } ^ res15: Int = 3 scala> 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { 1 + 2 + 3 } ; bippy+88+11 :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def ^ :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def ^ :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def ^ :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def ^ defined object Cow defined class Moo bippy: Int res16: Int = 105 scala> scala> object Bovine { var x: scala.List[_] = null } ; case class Ruminant(x: scala.Int) ; bippy * bippy * bippy defined object Bovine defined class Ruminant res17: Int = 216 scala> Bovine.x = scala.List(Ruminant(5), Cow, new Moo) Bovine.x: List[Any] = List(Ruminant(5), Cow, Moooooo) scala> Bovine.x res18: List[Any] = List(Ruminant(5), Cow, Moooooo) scala> scala> (2) res19: Int = 2 scala> (2 + 2) res20: Int = 4 scala> ((2 + 2)) res21: Int = 4 scala> ((2 + 2)) res22: Int = 4 scala> ( (2 + 2)) res23: Int = 4 scala> ( (2 + 2 ) ) res24: Int = 4 scala> 5 ; ( (2 + 2 ) ) ; ((5)) :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 5 ; ( (2 + 2 ) ) ;; ^ :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 5 ; ( (2 + 2 ) ) ;; ^ res25: Int = 5 scala> (((2 + 2)), ((2 + 2))) res26: (Int, Int) = (4,4) scala> (((2 + 2)), ((2 + 2)), 2) res27: (Int, Int, Int) = (4,4,2) scala> (((((2 + 2)), ((2 + 2)), 2).productIterator ++ scala.Iterator(3)).mkString) res28: String = 4423 scala> scala> 55 ; ((2 + 2)) ; (1, 2, 3) :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 55 ; ((2 + 2)) ;; ^ :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 55 ; ((2 + 2)) ;; ^ res29: (Int, Int, Int) = (1,2,3) scala> 55 ; (x: scala.Int) => x + 1 ; () => ((5)) :12: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 55 ; (x: scala.Int) => x + 1 ;; ^ res30: () => Int = scala> scala> () => 5 res31: () => Int = scala> 55 ; () => 5 :11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses 55 ;; ^ res32: () => Int = scala> () => { class X ; new X } res33: () => AnyRef = scala> scala> def foo(x: scala.Int)(y: scala.Int)(z: scala.Int) = x+y+z foo: (x: Int)(y: Int)(z: Int)Int scala> foo(5)(10)(15)+foo(5)(10)(15) res34: Int = 60 scala> scala> scala.List(1) ++ scala.List('a') res35: List[AnyVal] = List(1, a) scala> scala> :paste < EOF // Entering paste mode (EOF to finish) class C { def c = 42 } EOF // Exiting paste mode, now interpreting. defined class C scala> new C().c res36: Int = 42 scala> :paste <| EOF // Entering paste mode (EOF to finish) class D { def d = 42 } EOF // Exiting paste mode, now interpreting. defined class D scala> new D().d res37: Int = 42 scala> scala> :paste < EOF // Entering paste mode (EOF to finish) class Dingus { private val x = 5 def y = Dingus.x * 2 } object Dingus { private val x = 55 } EOF // Exiting paste mode, now interpreting. defined class Dingus defined object Dingus scala> val x = (new Dingus).y x: Int = 110 scala> scala> val x1 = 1 x1: Int = 1 scala> val x2 = 2 x2: Int = 2 scala> val x3 = 3 x3: Int = 3 scala> case class BippyBungus() defined class BippyBungus scala> x1 + x2 + x3 res38: Int = 6 scala> :reset Resetting interpreter state. Forgetting this session history: 1 1.0 () "abc" (1, 2) { import scala.Predef.ArrowAssoc; 1 -> 2 } { import scala.Predef.ArrowAssoc; 1 → 2 } val answer = 42 { import scala.StringContext; s"answer: $answer" } "abc" + true { import scala.Predef.any2stringadd; true + "abc" } var x = 10 var y = 11 x = 12 y = 13 2 ; 3 { 2 ; 3 } 5 ; 10 ; case object Cow ; 20 ; class Moo { override def toString = "Moooooo" } ; 30 ; def bippy = { 1 + 2 + 3 } ; bippy+88+11 object Bovine { var x: scala.List[_] = null } ; case class Ruminant(x: scala.Int) ; bippy * bippy * bippy Bovine.x = scala.List(Ruminant(5), Cow, new Moo) Bovine.x (2) (2 + 2) ((2 + 2)) ((2 + 2)) ( (2 + 2)) ( (2 + 2 ) ) 5 ; ( (2 + 2 ) ) ; ((5)) (((2 + 2)), ((2 + 2))) (((2 + 2)), ((2 + 2)), 2) (((((2 + 2)), ((2 + 2)), 2).productIterator ++ scala.Iterator(3)).mkString) 55 ; ((2 + 2)) ; (1, 2, 3) 55 ; (x: scala.Int) => x + 1 ; () => ((5)) () => 5 55 ; () => 5 () => { class X ; new X } def foo(x: scala.Int)(y: scala.Int)(z: scala.Int) = x+y+z foo(5)(10)(15)+foo(5)(10)(15) scala.List(1) ++ scala.List('a') new C().c new D().d val x = (new Dingus).y val x1 = 1 val x2 = 2 val x3 = 3 case class BippyBungus() x1 + x2 + x3 Forgetting all expression results and named terms: $intp, BippyBungus, Bovine, Cow, Dingus, Ruminant, answer, bippy, foo, x, x1, x2, x3, y Forgetting defined types: BippyBungus, C, D, Dingus, Moo, Ruminant scala> x1 + x2 + x3 :12: error: not found: value x1 x1 + x2 + x3 ^ :12: error: not found: value x2 x1 + x2 + x3 ^ :12: error: not found: value x3 x1 + x2 + x3 ^ scala> val x1 = 4 x1: Int = 4 scala> new BippyBungus :12: error: not found: type BippyBungus new BippyBungus ^ scala> class BippyBungus() { def f = 5 } defined class BippyBungus scala> { new BippyBungus ; x1 } res2: Int = 4 scala> :quit