首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为CPS类实现Seq[T]

为CPS类实现Seq[T]
EN

Stack Overflow用户
提问于 2010-04-19 21:27:03
回答 1查看 416关注 0票数 7

有了CPS上下文(@cpsUnit)中的以下类,我将如何实现Seq-trait?我是否必须把像Seq这样的标准特性放在一边,只在cps-context中实现map、flatmap和foreach?

代码语言:javascript
复制
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]"
    }
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-14 01:56:37

好的,据我所知,实现像Seq这样的接口/特征是不可能的。但是,当Scala将foreach语法循环重写为普通的for /map调用时,使用所需的cps注释来实现mapforeach是非常好的。filter & co应该也能正常工作。

然而,任何关于如何在cps上下文中实现特征的建议都是非常受欢迎的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2667720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档