Как в Scala реифицируется сброс с двумя сдвигами?

Из этого сообщения в блоге я понимаю, как реифицируется один сдвиг в сбросе .

reset { 1 + shift {k:Int => Int => k(5)} + 1}

превращается в

val reified = {shiftValue:Int => 1 + shiftValue + 1}; reified (5)

Теперь У меня есть еще один пример:

reset { 
  1 + shift(k1:Int => Int => k1(5)} + 1;
  2 + shift(k2:Int => Int => k2(6)} + 2
}

Он реифицируется в:

val reified ={shifyValue1:Int =>
    1 + shiftValue + 1; 
    2 + shift(k2:Int => Int => k2(6)} + 2
}
reified(5)

Как я могу еще больше его утвердить, чтобы избавиться от 2-го сдвига ?

5
задан Michael 28 May 2011 в 17:28
поделиться