From 42497f56acb5263f25c9baf5d3e521242333d6e7 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Fri, 8 May 2020 21:30:56 +0100 Subject: - Added solutions by Arne Sommer. --- challenge-059/arne-sommer/raku/linked-list-linked | 48 +++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 challenge-059/arne-sommer/raku/linked-list-linked (limited to 'challenge-059/arne-sommer/raku/linked-list-linked') diff --git a/challenge-059/arne-sommer/raku/linked-list-linked b/challenge-059/arne-sommer/raku/linked-list-linked new file mode 100755 index 0000000000..00796d8676 --- /dev/null +++ b/challenge-059/arne-sommer/raku/linked-list-linked @@ -0,0 +1,48 @@ +#! /usr/bin/env raku + +multi MAIN (Int $k = 3, Str $list = "1 4 3 2 5 2", :$verbose) +{ + MAIN($k, $list.words, :$verbose); +} + +multi MAIN (Int $k = 3, *@list, :$verbose) +{ + my @lower; + my @higher; + + for @list -> $elem + { + $elem >= $k + ?? @higher.push: $elem + !! @lower.push: $elem; + } + + my @result = (@lower, @higher).flat; + + if $verbose + { + say ": == : $k"; + say ": < : @lower[]"; + say ": >= : @higher[]"; + } + + say @result.join(" → ") if $verbose; + + class ListElem + { + has $.value; + has $.next is rw; + + method display + { + print $.value; + if $.next { print " → "; $.next.display; } else { say ""; } + } + } + + my $head; + + $head = ListElem.new(value => $_, next => $head) for @result.reverse; + + $head.display; +} -- cgit