cla*_*lay 5 theory tuples list
我看到与特定编程语言相关的现有问题.特定语言存在实施差异,但是存在理论上的概念差异吗?
Mutable vs immutable:在Python中,列表是完全可变的,而元组是不可变的或持久不可变的,因此修改创建新的元组并且不进行就地修改.但这纯粹是一个实现细节.在其他语言中,元组是可变的,列表是不可变的.
异构与同构:从语义上讲,元组通常是异构的,而列表通常是同构的,但这更像是一种约定,并且有很多例外.像Python这样的动态类型语言具有异构列表.例如,Haskell支持称为HList的完全静态类型的异构列表.
有限与无限:从理论上讲,列表可以是无限的,一些编程语言(Haskell)支持无限列表.元组不可能是无限的.
更新:唯一的理论差异是元组必须是有限的,而列表理论上可以是无限的.其余的差异是纯粹的实现差异.
维基百科说"元组是一个有限的有序元素列表."
这清楚地表明元组是一个列表,而是一个有限列表.