[英]Haskell ~ Does last iterate the entire list?
Haskellites的简单问题:Haskell是否迭代整个序列以获得最后一个值? 具体来说,是否为这两个表达式执行了不同数量的指令?
Prelude> last "asdf"
'f'
Prelude> last "qwerty"
'y'
是的,Haskell的列表是单链接的,因此last
需要遍历整个列表,使其运行时为O(n)
。
除了sepp2k所说的,这很容易确定:只需运行“last [1..1000000000]”并查看是否需要一段时间。 正如预期的那样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.