gpt4 book ai didi

perl - 有多少种方法可以描述Perl 6中的斐波那契数列?

转载 作者:行者123 更新时间:2023-12-03 11:59:35 24 4
gpt4 key购买 nike

我一直在研究Perl 6中构造懒惰列表的各种方式,我想收集所有描述斐波那契序列的简明方式。

我将从masak的日记中的三个开始:

my @fibs := (0, 1, -> $a, $b { $a + $b } ... *);

my @fibs := (0, 1, { $^a + $^b } ... *);

my @fibs := (0, 1, *+* ... *);

我以为这样的事情也可以,但是我认为语法错误:
my @fibs := (0, 1, (@fibs Z+ @fibs[1..*]));

渴望的东西( slice ?)使Rakudo进入无限循环。它是Haskell定义的翻译:
fibs = 0 : 1 : zipWith (+) fibs (tail fibs)

更新:

好像 zipWith示例的问题是 @fibs[1..*] slice。如果 tail定义为 sub tail (@x) {my $i = 1; {@x[$i++]}...*},则它可以正常工作。我想知道为什么对熟悉Rakudo内部原理的任何人都不会偷懒。

另一个不错的是:
my @fibs := (0, [\+] 1, @fibs);

最佳答案

最短的似乎是

my @fibs := ^2,*+*...*;

关于perl - 有多少种方法可以描述Perl 6中的斐波那契数列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3980842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com