From e31dec0338c38ef7c9bebdd58b0945b9974b5321 Mon Sep 17 00:00:00 2001 From: 冯昶 Date: Mon, 7 Dec 2020 18:53:06 +0800 Subject: challenge #90, raku solutions --- challenge-090/feng-chang/raku/ch-1.raku | 11 +++++++++++ challenge-090/feng-chang/raku/ch-2.raku | 21 +++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100755 challenge-090/feng-chang/raku/ch-1.raku create mode 100755 challenge-090/feng-chang/raku/ch-2.raku diff --git a/challenge-090/feng-chang/raku/ch-1.raku b/challenge-090/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..d25e180f77 --- /dev/null +++ b/challenge-090/feng-chang/raku/ch-1.raku @@ -0,0 +1,11 @@ +#!/bin/env raku + +my \DNA = 'GTAAACCCCTTTTCATTTAGACAGATCGACTCCTTATCCATTCTCAGAGATGTGTTGCTGGTCGCCG'; + +# Task 1 +my %nuclei-count; +DNA.comb.map({ ++%nuclei-count{ $_ } }); +put "nucleiobase count:\n\t", %nuclei-count.gist; + +# Task 2 +put "the complementary sequence:\n\t{ with DNA { TR/TAGC/ATCG/ } }"; diff --git a/challenge-090/feng-chang/raku/ch-2.raku b/challenge-090/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..650f57e513 --- /dev/null +++ b/challenge-090/feng-chang/raku/ch-2.raku @@ -0,0 +1,21 @@ +#!/bin/env raku + +sub MAIN(UInt:D $A, UInt:D $B) { + my ($a, $b) = ($A, $B); + my $aw = $a.chars; + my $bw = ($b * $a).chars; + my @R; + + repeat { + put "{ $a.fmt("%{ $aw }d") } & { $b.fmt("%{ $bw }d") }"; + @R.push([$a, $b]); + + $a div= 2; + $b *= 2; + } while $a > 0; + + put '-' x ($aw + $bw + 3); + + my @S = @R.grep({ .[0] !%% 2 }).map({ .[1] }); + put @S.join(' + '), ' = ', @S.sum; +} -- cgit From fda0f198254332ff0fe7d46f2520181b4a4c1524 Mon Sep 17 00:00:00 2001 From: 冯昶 Date: Mon, 7 Dec 2020 19:08:18 +0800 Subject: fix --- challenge-090/feng-chang/raku/ch-2.raku | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/challenge-090/feng-chang/raku/ch-2.raku b/challenge-090/feng-chang/raku/ch-2.raku index 650f57e513..eb089b92c9 100755 --- a/challenge-090/feng-chang/raku/ch-2.raku +++ b/challenge-090/feng-chang/raku/ch-2.raku @@ -2,8 +2,7 @@ sub MAIN(UInt:D $A, UInt:D $B) { my ($a, $b) = ($A, $B); - my $aw = $a.chars; - my $bw = ($b * $a).chars; + my ($aw, $bw) = ($a.chars, ($b * $a).chars); my @R; repeat { @@ -16,6 +15,6 @@ sub MAIN(UInt:D $A, UInt:D $B) { put '-' x ($aw + $bw + 3); - my @S = @R.grep({ .[0] !%% 2 }).map({ .[1] }); + my @S = @R.grep(*.[0] !%% 2).map(*.[1]); put @S.join(' + '), ' = ', @S.sum; } -- cgit