我从blog post了解shift
中的reset
是如何实现的。
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)
如何进一步将其重新定义以摆脱第二个shift
?
答案 0 :(得分:4)
val reified ={shiftValue1:Int =>
1 + shiftValue + 1;
val reified2 = {shiftValue2: Int => 2 + shiftValue + 2};
reified2(6)
}
reified(5)
基本上是相同的转变。
(scala没有安装在这里,所以我只在Scheme中测试了这个转换,它应该表现相同,忽略任何类型的系统问题。)