为什么Perl 6序列’A’…’AA’只有一个元素?

前端之家收集整理的这篇文章主要介绍了为什么Perl 6序列’A’…’AA’只有一个元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
今天我注意到序列’A’…’AA’只包含一个元素:
> 'A' ... 'AA'
(A)

我认为它将包含27:字母加上最终AA.

如果我明确提供了一个生成器,它会:

> 'A',*.succ ... 'AA'
(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA)

文档说默认生成器是* .succ或* .pred,具体取决于端点的比较方式.但:

> 'A' cmp 'AA'
Less

所以我似乎应该默认获得* .succ生成器.我肯定没有得到* .pred生成器:

> 'A',*.pred ... 'AA'
Decrement out of range
  in whatevercode  at <unknown file> line 1

这里发生了什么?

解决方法

看看它使用的代码rakudo/operators

你的代码非常相似

"A",*.succ ...^ * gt "AA"

(“B”gt“AA”为True)

和Curt Tilmes的代码类似

"A",*.succ ...^ {$_ gt "ZZ" or .chars > "ZZ".chars}
"A",*.succ ...^ {$_ gt "YY" or .chars > "YY".chars}

(“Z”gt“YY”和“AAA”.chars>“ZZ”.chars为True)

原文链接:/Perl/172169.html

猜你在找的Perl相关文章