因为在Scala列表中实际构建的是(此处为List(1,2,3)
),所以:
[ 1 , [ 2, [ 3 , Nill ] ] ] // (pseudo-code)
假装新元素更有效,这就是为什么::
是正确关联的(所有在https://stackoverflow.com/a/1162980/4533188中解释) - 为了更好的可读性(这里1 :: 2 :: 3
)。这回答了我的问题,为什么首先要有正确的关联是好的。但是为什么Lists的设计者不会像
[ Nill , [ 3, [ 2 , 1 ] ] ] // (pseudo-code)
内部并使用传统的左联想?
这里的图形是我的伪代码的意思(因为它没有显示链表的“链接”):
答案 0 :(得分:2)
因为附加列表不是不可变的(或者你必须在每次更改时完整地复制它)。