def foo
[T
](code
: => T
) : Runnable
= new Runnable
{ def run
= code
} val x
: Runnable
= foo
(() => { System.out.println("b")
})
System.out.println("d")
})
System.out.println("a")
x.run()
System.out.println("c")
y.run()
System.out.println("e")
}
}
ICAgIG9iamVjdCBNYWluIGV4dGVuZHMgQXBwIHsKICAgICAgZGVmIGZvb1tUXShjb2RlOiA9PiBUKSA6IFJ1bm5hYmxlID0gbmV3IFJ1bm5hYmxlIHsgZGVmIHJ1biA9IGNvZGUgfQogICAgICBvdmVycmlkZSBkZWYgbWFpbihhcmdzOiBBcnJheVtTdHJpbmddKTogVW5pdCA9IHsKICAgICAgICB2YWwgeDogUnVubmFibGUgPSBmb28oKCkgPT4gewogICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJiIikKICAgICAgICB9KQogICAgICAgIHZhbCB5OiBSdW5uYWJsZSA9IGZvbyh7CiAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImQiKQogICAgICAgIH0pCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJhIikKICAgICAgICB4LnJ1bigpCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjIikKICAgICAgICB5LnJ1bigpCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJlIikKICAgICAgfQogICAgfQo=