Perl 6:.. 和...之间的区别?

Perl 6: Difference between .. and ...?

Perl 6 中的 .. 和 ... 有什么区别?

例如,以下行将产生相同的输出:

for 1..5 { .say };

for 1...5 { .say };

.. 构造一个范围对象(想想数学区间)。

... 构造一个序列(想想惰性生成的 one-shot 列表)。

如果我想做的只是迭代连续的整数(例如用于索引),我更喜欢前者(这是不太通用的工具,而且启动字符更短)。

如果您需要更精确的控制,请使用后者(例如,在 Perl6 中生成斐波那契数列的惯用示例由表达式 1, 1, *+* ... * 给出,其中第三项 *+* 是规则用于感应生成元素)。