perl6:html颜色渐变生成器

Mim*_*net 6 html gradient colors perl6 raku

该问题已移至“代码审查”中的该职位。请在代码审查中回答问题。谢谢!


受此颜色渐变生成器的启发,这是perl6中的渐变生成器。我想知道代码是否可以简化或改进。它将十六进制颜色转换为base10,计算渐变颜色,然后将颜色转换为base16。

my $initial_color = '#FF0000';
my $final_color   = '#00FF00';
my $gradient      = 10;

my @initial   = ($initial_color ~~ /\#(..)(..)(..)/).list.map: { .Str.parse-base(16) };
my @final     = ($final_color   ~~ /\#(..)(..)(..)/).list.map: { .Str.parse-base(16) };
my @range     = @final Z- @initial; 
my @increment = @range.map: { $_ / $gradient };

my @color;
@color.push: @initial;
for (1..$gradient) -> $i {
  @color.push: @(@color[$i-1]) Z+ @increment;
}

for (0..$gradient) -> $i {
  @color[$i] = '#' ~ ( @(@color[$i]).map: { .base(16,0).fmt('%02s') } ).join;
}

my $fh = open '/tmp/delete.html', :w;
for (0..$gradient) -> $i {
  $fh.print: "<span style='background-color:@color[$i]'>&nbsp;</span>"; 
}
$fh.print: '&nbsp';
$fh.close;

run <elinks -dump -dump-color-mode 3 /tmp/borrem.html>;
Run Code Online (Sandbox Code Playgroud)