From 04630eaa204fd0950cdac071e8dac700cf536614 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Mon, 17 Aug 2020 05:40:47 -0600 Subject: ch-2.raku --- challenge-074/mark-anderson/raku/ch-2.p6 | 31 ------------------------------ challenge-074/mark-anderson/raku/ch-2.raku | 31 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 31 deletions(-) delete mode 100644 challenge-074/mark-anderson/raku/ch-2.p6 create mode 100644 challenge-074/mark-anderson/raku/ch-2.raku diff --git a/challenge-074/mark-anderson/raku/ch-2.p6 b/challenge-074/mark-anderson/raku/ch-2.p6 deleted file mode 100644 index c572e643c3..0000000000 --- a/challenge-074/mark-anderson/raku/ch-2.p6 +++ /dev/null @@ -1,31 +0,0 @@ -sub MAIN($string) { - my @fnr-chars = gather { - for 1..$string.chars -> $i { - take fnr($string.substr(0, $i)); - } - } - - say @fnr-chars.join; -} - -sub fnr($string) { - state %seen; - state $singles; - - my $letter = $string.substr($string.chars-1, 1); - - %seen{$letter}++; - - given %seen{$letter} { - when 1 { - $singles ~= $letter; - return $letter; - } - when 2 { - my $idx = $singles.index($letter); - $singles = $singles.substr(0, $idx) ~ $singles.substr($idx+1); - } - } - - return $singles.substr($singles.chars-1, 1) // "#"; -} diff --git a/challenge-074/mark-anderson/raku/ch-2.raku b/challenge-074/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..c572e643c3 --- /dev/null +++ b/challenge-074/mark-anderson/raku/ch-2.raku @@ -0,0 +1,31 @@ +sub MAIN($string) { + my @fnr-chars = gather { + for 1..$string.chars -> $i { + take fnr($string.substr(0, $i)); + } + } + + say @fnr-chars.join; +} + +sub fnr($string) { + state %seen; + state $singles; + + my $letter = $string.substr($string.chars-1, 1); + + %seen{$letter}++; + + given %seen{$letter} { + when 1 { + $singles ~= $letter; + return $letter; + } + when 2 { + my $idx = $singles.index($letter); + $singles = $singles.substr(0, $idx) ~ $singles.substr($idx+1); + } + } + + return $singles.substr($singles.chars-1, 1) // "#"; +} -- cgit