Как сделать Scala Control Abstraction в Repeat To?

Я Питер Пилигрим. Я видел, как Мартин Одерский создал контрольную абстракцию в Scala. Однако я пока не могу повторить это в IntelliJ IDEA 9. Это IDE?

package demo

class Control {

  def repeatLoop ( body: => Unit ) = new Until( body )

  class Until( body: => Unit ) {
    def until( cond: => Boolean ) {
      body;
      val value: Boolean = cond;
      println("value="+value)
      if ( value ) repeatLoop(body).until(cond)
      // if  (cond) until(cond)
    }
  }

  def doTest2(): Unit = {
    var y: Int = 1
    println("testing ... repeatUntil() control structure")
    repeatLoop {
      println("found y="+y)
      y = y + 1
    }
    { until ( y < 10 ) }
  }

}

Сообщение об ошибке гласит:

Информация: компиляция завершена с 1 ошибкой и 0 предупреждениями
Информация: 1 ошибка
Информация: 0 предупреждений
C: \ Users \ Питер \ IdeaProjects \ HelloWord \ SRC \ демонстрационная \ Control.scala
Ошибка: Ошибка: ошибка строки (57): Control.this.repeatLoop ({
scala.this.Predef.println ("найдено у =". + (у));
у = у. + (1)
}) типа Control.this.Until не принимает параметры
repeatLoop {

В функции curry можно считать, что тело возвращает выражение (значение y + 1), однако параметр тела объявления repeatUntil ясно говорит, что это можно игнорировать или нет?

Что означает ошибка?

Ответы на вопрос(4)

Ваш ответ на вопрос