Я пытаюсь преобразовать следующий код в стиль передачи продолжения. Первоначально код возвращал String
, поэтому я изменил его, чтобы вызвать лямбду продолжения, которая принимает String
. Мне интересно, как удалить поле next
и вместо этого использовать стиль CPS.
class Foo(val x: Double) {
var next: Foo = _
def bar(y: Double, returnLambda: (String => Unit)): Unit = {
if (x * y > 0) {
returnLambda("Bad")
} else if (next == null) {
returnLambda("Good!")
next = new Foo(y)
} else {
next.bar(y, returnLambda)
}
}
}