将额外参数传递给foldRight

时间:2010-12-04 17:26:08

标签: scala scala-2.8 scala-collections

有没有办法将一些额外的参数传递给提供给Scala的List.foldRight的函数?

一些示例代码:

def createActorPool[T](implicit actor: Manifest[T], poolSize: Int): List[Supervise] = {
  (1 to poolSize).foldRight(List[Supervise]()) {
    (idx, list) => { Supervise(actorOf[actor], Permanent) :: list }
  }
}

我感兴趣的对象是actor,但在用于构建Supervise时不可见。

P.S。:我对Scala很新,所以请接受我的道歉,如果这是一个常见问题解答(尽管广泛的谷歌搜索没有任何适用的点击)。

2 个答案:

答案 0 :(得分:3)

我真的不明白你的问题。 传递给foldRight的函数可以自由引用并使用范围内的任何其他内容。 还不够吗?

答案 1 :(得分:2)

在Scala中,字符[]仅用于类型。在您提供的代码示例中,actor是一个对象,而不是一个类型。也许这会奏效:

def createActorPool[T](implicit actor: Manifest[T], poolSize: Int): List[Supervise] = {
  (1 to poolSize).foldRight(List[Supervise]()) {
    (idx, list) => { Supervise(actorOf[T], Permanent) :: list }
  }
}