Given:
package object wrap { import java.time._ def delayed[A](a: => A): A = { Console println Instant.now Thread.sleep(1000L) val x = a Console println Instant.now x } }
You can:
Welcome to Scala 2.12.0-M3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_60). Type in expressions for evaluation. Or try :help. scala> $intp.setExecutionWrapper("wrap.delayed") scala> { println("running"); 42 } 2016-02-20T06:28:17.372Z running 2016-02-20T06:28:18.388Z res1: Int = 42 scala> :quit
source share