perl6 – 为什么我不能在Perl 6列表中“尾随”`tail`的结果?
发布时间:2020-12-15 21:50:18 所属栏目:大数据 来源:网络整理
导读:为什么我不能拖尾的结果呢?我可以在序列尾部返回(以及其他变化)上调用头部,但尾部的尾部不起作用(在2017.10中): my $list = a b c d e f g h i j;(a b c d e f g h i j) $list.head(5).heada $list.head(5).taile $list.tail(5).headf 这个失败了: $list.
为什么我不能拖尾的结果呢?我可以在序列尾部返回(以及其他变化)上调用头部,但尾部的尾部不起作用(在2017.10中):
> my $list = <a b c d e f g h i j>; (a b c d e f g h i j) > $list.head(5).head a > $list.head(5).tail e > $list.tail(5).head f 这个失败了: > $list.tail(5).tail Nil 但是在那里扔一个列表有效: > $list.tail(5).list.tail j 解决方法
这是一个错误.
List.iterator的.count-only优化方法没有考虑到迭代器在调用方法时已经被部分消耗(这里,通过第一个.tail调用)的事实,并且正如timotimo在注释中指出的那样,始终保持原始长度.绝对的.tail然后used that method,击中了虫子. 现已修复2017.11-76-gf70e20b Rakudo 除非我误解迭代器协议,在相当多的其他迭代器中同样的bug was present,所以感谢找到这个蜂巢! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |