对Scala中不可变数据结构的同一实例进行多次插入

对Scala中不可变数据结构的同一实例进行多次插入,scala,Scala,我有一个名为Fork的数据类型,它是不可变的。Fork实例可以包括另一种数据类型的一个或多个实例Body。 我想将Body实例的列表逐个插入到相同的Fork实例中。每次插入正文后,将返回Fork的新实例 我尝试了以下代码,但它给出了一个错误 bodies: Seq[Body] // this is from the constructor val fk = Fork(nw, ne, sw, se) // new instance of a Fork is created val fkl =

我有一个名为
Fork
的数据类型,它是不可变的。
Fork
实例可以包括另一种数据类型的一个或多个实例
Body
。 我想将
Body
实例的列表逐个插入到相同的
Fork
实例中。每次插入
正文
后,将返回
Fork
的新实例

我尝试了以下代码,但它给出了一个错误

bodies: Seq[Body] // this is from the constructor 
val fk = Fork(nw, ne, sw, se) // new instance of a Fork is created 
val fkl = bodies.map(b => { val fk: Fork = fk.insert(b) }) // trying to 
// insert a list of Body instances to the same instance of Fork

Error:(131, 46) forward reference extends over definition of value fk
        val fkl=bodies2.map(b=>{ val fk:Fork=fk.insert(b)})
你可以用

它将从原始的
fk
实例开始,然后对于每个body
b
将body插入fork并返回您可以使用的更新的fork

它将从原始的
fk
实例开始,然后对于每个body
b
将body插入fork并返回更新的fork

val fkl = bodies.foldLeft(fk)((f,b) => f.insert(b))