1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
class Ping { val pong = new Pong(this) def name = "ping" def loop/*?*/ { poke() } def poke/*?*/ { pong./*!*/poke() } override def toString = name } class Pong(ping: Ping) { val name/*?*/ = "pong" def poke() { ping./*!*/poke() } override def toString = name }