Philipp Haller, EPFL and Stanford University
Creating and playing with a class in Scala's interpreter (REPL). Below is both the code entered into the REPL as well as the REPL's output.
class PersonTry1(name: String, age: Int)
val p = new PersonTry1("erik", 23)
p.name
<console>:10: error: value name is not a member of PersonTry1
p.name
^
class PersonTry2(var name: String, var age: Int)
val p2 = new PersonTry2("erik", 23)
p2.name
res1: String = erik
p2.name = "bjoern"
p2.name
res2: String = bjoern
class Person(val name: String, val age: Int)
val p3 = new Person("erik", 23)
p3.name
p3.name = "bjoern"
<console>:9: error: reassignment to val
p3.name = "bjoern"
^
val persons = Array(new Person("erik", 23), new Person("adam", 23),
new Person("clara", 17))
val res = persons.filter(p => p.age >= 18)
res.foreach(p => println(p.name))
erik
adam
val (minors, adults) = persons partition (_.age < 18)
adults.foreach(p => println(p.name))
erik
adam