Có lớp sau trong ngữ cảnh CPS (@cps [Unit]) tôi sẽ triển khai đặc điểm Seq như thế nào? Tôi có phải để lại các đặc điểm tiêu chuẩn như Seq sang một bên và chỉ cần thực hiện bản đồ, sơ đồ phẳng và tìm kiếm trong bối cảnh cps?Triển khai Seq [T] cho CPS-Classes
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]"
}
}
}
Câu hỏi của tôi có quá khó hiểu không? Tóm lại: Khi tất cả các hàm hoạt động trong ngữ cảnh CPS cần trả về một loại chú thích với cps [X], tôi không thể thực hiện bất kỳ Traits/Giao diện chuẩn nào như Seq vì chữ ký của chúng thiếu các chú thích @ cps. Điều này có đúng không? – hotzen