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
<console>:12: error: value -> is not a member of Int
1 -> 2
^
scala> 1 → 2
<console>: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"
<console>: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"
<console>: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
<console>:11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses
2 ;;
^
res14: Int = 3
scala> { 2 ; 3 }
<console>: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
<console>: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
^
<console>: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
^
<console>: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
^
<console>: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))
<console>:11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses
5 ; ( (2 + 2 ) ) ;;
^
<console>: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)
<console>:11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses
55 ; ((2 + 2)) ;;
^
<console>: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))
<console>:12: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses
55 ; (x: scala.Int) => x + 1 ;;
^
res30: () => Int = <function0>
scala>
scala> () => 5
res31: () => Int = <function0>
scala> 55 ; () => 5
<console>:11: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses
55 ;;
^
res32: () => Int = <function0>
scala> () => { class X ; new X }
res33: () => AnyRef = <function0>
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
<console>:12: error: not found: value x1
x1 + x2 + x3
^
<console>:12: error: not found: value x2
x1 + x2 + x3
^
<console>:12: error: not found: value x3
x1 + x2 + x3
^
scala> val x1 = 4
x1: Int = 4
scala> new BippyBungus
<console>: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