Scala 将额外参数传递给foldRight

Scala 将额外参数传递给foldRight,scala,scala-2.8,scala-collections,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) ::

有没有办法向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
,但是在用于构建监控时,它是不可见的


注:我对Scala还很陌生,如果这是一个常见问题,请接受我的道歉(尽管谷歌搜索范围很广,没有任何适用的点击量)。

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

在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 }
  }
}

在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 }
  }
}

陛下它是。可能是我误解了一条编译器错误消息(Scala插件的想法抱怨了一个无法解决的符号),所以我的印象是actor不可见。谢谢你澄清这一点!陛下它是。可能是我误解了一条编译器错误消息(Scala插件的想法抱怨了一个无法解决的符号),所以我的印象是actor不可见。谢谢你澄清这一点!