我一直在尝试将Bloxorz作业作为Scala中功能程序设计课程的一部分,并且一直在尝试向Stream中添加一个元素,如下所示,但我得到了:
无法解析符号
#::
。
此代码中存在一些非常小的,明显的错误。我在这里做错了什么?
def neighborsWithHistory(b: Block, history: List[Move]): Stream[(Block, List[Move])] = {
(b.neighbors foldLeft Stream((b, history))) {
case (acc, (bl, move)) => acc #:: (bl, move :: history)
}
}
答案 0 :(得分:2)
以冒号结尾的方法是right associative。由于#::
上的ConsWrapper
定义为Stream
,因此acc
需要位于右侧:
(bl, move :: history) #:: acc