CPS コンテキスト (@cps[Unit]) にある次のクラスを使用すると、Seq 特性をどのように実装できますか? Seq のような標準的な特性を脇に置き、cps-context で map、flatmap、および foreach を実装する必要がありますか?
class DataFlowVariable[T] {
def apply(): T @cps[Unit] = ...
}
class DataFlowStream[T] extends Seq[T] {
override def iterator: Iterator[T] = new Iterator[T] {
private val iter = queue.iterator
def hasNext: Boolean = iter.hasNext
def next: T = { // needed: next: T @cps[Unit] !
val dfvar = iter.next
// dfvar() // not possible as dvar.apply has type "T @cps[Unit]"
}
}
}