perl - 与 Perl 6 序列任意 (...) 运算符的乘法

标签 perl raku

我已经在序列中看到了 Perl 6 的任何 (...) 运算符的示例,并且我试图找出如何执行涉及乘法的序列。

运算符执行以下操作,如果以某些数字开头,则可以指定其后的数字序列。

@natural = 1,2 ... *;
@powersOfTwo = 1,2,4 ... *;

等等。
还可以使用序列中前面的数字定义一个序列,如斐波那契数字(如 question 所示),其中执行以下操作:
@fibonacci = 1,1, *+* ... *;

问题是乘法运算符是*前面的数字也用 * 表示.

虽然我可以使用 + 定义一个序列, -/ ,我似乎找不到使用 * 定义序列的方法.

我尝试了以下方法:
@powers = 1,2, *** ... *;

但它显然不起作用。

有谁知道如何做到这一点?

最佳答案

一方面,Perl 6 对空格很敏感。

1, 2, * * * ... *

是完全合法的,并生成一个有点像乘法斐波那契数列的序列;只是有点难读。 **** * *意味着不同的东西。

如果歧义困扰您,您可以使用显式块而不是使用“任何明星”为您提供的隐式块:
1, 2, -> $a, $b { $a * $b } ... *


1, 2, { $^a * $^b } ... *

两者都产生与 1, 2, * * * ... * 相同的序列确实(在 Rakudo 中测试)。

关于perl - 与 Perl 6 序列任意 (...) 运算符的乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7853049/

相关文章:

raku - 在循环内将元素添加到声明为 "state %set is SetHash[Str]"的 SetHash 时抛出异常

raku - 用于抑制接收器上下文的自定义运算符

operator-overloading - 如何定义 'AT-POS'方法?

perl - Spreadsheet::WriteExcel 未使用 merge_range 在 Excel 中写入字符串

perl - 净::Telnet Error Handling

perl - 在 Perl 中获取 shell 脚本

php - 如何在 perl 和 php 中根据日期时间比较两个字符串?

regex - Raku Regex 捕获和修改 LFM 代码块

shell - 是否有可用的 Raku 交互式 shell,如 Bash 或 Zoiberg shell

perl - 如何使用 Perl SSH 连接到远程主机?