我已经看到了序列中Perl 6无论(...)运算符的例子,我试图找出如何进行涉及乘法的序列.
操作员执行以下操作,如果以某些数字开头,则可以指定其后面的数字序列.
@natural = 1,2 ... *;
@powersOfTwo = 1,2,4 ... *;
Run Code Online (Sandbox Code Playgroud)
等等.也可以使用序列中的先前数字定义序列,如斐波那契数字(在此问题中显示),其中一个执行以下操作:
@fibonacci = 1,1, *+* ... *;
Run Code Online (Sandbox Code Playgroud)
问题是乘法运算符是*,以前的数字也表示*.
虽然我可以通过定义一个序列+,-并且/,我似乎无法找到使用定义序列的方法*.
我尝试过以下方法:
@powers = 1,2, *** ... *;
Run Code Online (Sandbox Code Playgroud)
但它显然不起作用.
有谁知道怎么做?
hob*_*bbs 14
首先,Perl 6对空白很敏感.
1, 2, * * * ... *
Run Code Online (Sandbox Code Playgroud)
是完全合法的,并产生一个类似于乘法斐波那契的序列; 它只是有点难以阅读.***并* * *意味着不同的东西.
如果歧义困扰你,你可以使用一个显式的块,而不是使用"任何星形"给你的隐式块:
1, 2, -> $a, $b { $a * $b } ... *
Run Code Online (Sandbox Code Playgroud)
和
1, 2, { $^a * $^b } ... *
Run Code Online (Sandbox Code Playgroud)
两者都产生相同的序列1, 2, * * * ... *(在Rakudo中测试).
| 归档时间: |
|
| 查看次数: |
509 次 |
| 最近记录: |