gpt4 book ai didi

raku - 有没有一种编程方式来详细说明 raku 中的 'half-winds'?

转载 作者:行者123 更新时间:2023-12-04 11:13:27 26 4
gpt4 key购买 nike

我有这个工作:

my %pnt = %( cardinal => <N E S W>, 
ordinal => <N NE E SE S SW W NW>,
half-winds => <N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW>,
);
我认为有可能以编程方式创建半风阵列。
然而,我可怜的尝试似乎更加冗长:
my @cards = <N E S W>; 
my @odds = <NE SE SW NW>;
my @ords = ( @cards Z @odds ).flat;
my @mids = ( ( @cards Z~ @odds ) Z ( @cards.rotate(1) Z~ @odds ) ).flat;
my @halfs = ( @ords Z @mids ).flat;

say @cards; #[N E S W]
say @ords; #[N NE E SE S SW W NW]
say @mids; #[NNE ENE ESE SSE SSW WSW WNW NNW]
say @halfs; #[N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW]
有没有更好/更简洁的替代方案?
即。 https://en.wikipedia.org/wiki/Points_of_the_compass
- 四分之一风的奖励积分!

最佳答案

FWIW,在这种情况下,我会考虑代码的可读性,我认为您的原始代码是您可以获得的最易读的代码。
但是如果你想获得算法,我会使用 @halfs使用使用序列的数组切片:

my @halfs = <N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW>;
my @mids = @halfs[1,3...*];
my @ords = @halfs[0,2...*];
my @cards = @halfs[0,4...*];

say @cards; #[N E S W]
say @ords; #[N NE E SE S SW W NW]
say @mids; #[NNE ENE ESE SSE SSW WSW WNW NNW]
say @halfs; #[N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW]
将四分之一风留给读者作为练习,但基本上那将使用四分之一风作为基础,并以类似的方式解决这个问题。

关于raku - 有没有一种编程方式来详细说明 raku 中的 'half-winds'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65853009/

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