How are people using continuations on a larger and smaller scale in Scala?
Are any parts of the Scala standard library written in CPS?
Are there any major performance penalties in using continuations?
I'm using this to turn asynchronous functions of the form def func(...)(followup: Result => Unit): Unit
so that instead of writing
foo(args){result1 =>
bar(result1){result2 =>
car(result2) {result3 =>
//etc.
}
}
}
you can write
val result1 = foo(args)
val result2 = bar(result1)
val result3 = car(result2)
or
car(bar(foo(args)))
(note: the functions are not limited to one argument or just the use of previous results as arguments)
See http://www.tikalk.com/java/blog/asynchronous-functions-actors-and-cps
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With