diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-12-26 01:32:17 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-26 01:32:17 +0000 |
| commit | 432d16e49284db9fc36ac090b32efe03752790ef (patch) | |
| tree | 583589993c2f2ded834f119579dbd94162bca8c9 | |
| parent | 2b145e5d7754d1978662fc36798ff8175f433503 (diff) | |
| parent | 447112a26259b6344e23b928247fae8a2c36146c (diff) | |
| download | perlweeklychallenge-club-432d16e49284db9fc36ac090b32efe03752790ef.tar.gz perlweeklychallenge-club-432d16e49284db9fc36ac090b32efe03752790ef.tar.bz2 perlweeklychallenge-club-432d16e49284db9fc36ac090b32efe03752790ef.zip | |
Merge pull request #7306 from arnesom/branch-for-challenge-196
Arne Sommer
| -rw-r--r-- | challenge-196/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-196/arne-sommer/raku/ch-1.raku | 22 | ||||
| -rwxr-xr-x | challenge-196/arne-sommer/raku/ch-2.raku | 25 | ||||
| -rwxr-xr-x | challenge-196/arne-sommer/raku/pattern132 | 22 | ||||
| -rwxr-xr-x | challenge-196/arne-sommer/raku/range-list | 25 |
5 files changed, 95 insertions, 0 deletions
diff --git a/challenge-196/arne-sommer/blog.txt b/challenge-196/arne-sommer/blog.txt new file mode 100644 index 0000000000..79b9ee98cb --- /dev/null +++ b/challenge-196/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/132-lists.html diff --git a/challenge-196/arne-sommer/raku/ch-1.raku b/challenge-196/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..1871d00202 --- /dev/null +++ b/challenge-196/arne-sommer/raku/ch-1.raku @@ -0,0 +1,22 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ /^<[1..9]><[0..9]>*$/); + +my $end = @list.elems - 1; + +for 0 .. $end - 2 -> $i +{ + for $i + 1 .. $end - 1 -> $j + { + for $j + 1 .. $end -> $k + { + if @list[$i] < @list[$k] < @list[$j] + { + say "(@list[$i], @list[$j], @list[$k])"; + exit; + } + } + } +} + +say "()"; diff --git a/challenge-196/arne-sommer/raku/ch-2.raku b/challenge-196/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..c226623d63 --- /dev/null +++ b/challenge-196/arne-sommer/raku/ch-2.raku @@ -0,0 +1,25 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@array where @array.elems > 1 && all(@array) ~~ /^<[0..9]>+$/ && [<] @array); + +my @ranges; +my $from = @array.shift.Int; +my $to = $from; + +while @array +{ + my $next = @array.shift.Int; + if $next == $to + 1 + { + $to = $next; + } + else + { + @ranges.push([$from, $to]) if $to > $from; + $from = $to = $next; + } +} + +@ranges.push([$from, $to]) if $to > $from; + +say @ranges.raku; diff --git a/challenge-196/arne-sommer/raku/pattern132 b/challenge-196/arne-sommer/raku/pattern132 new file mode 100755 index 0000000000..1871d00202 --- /dev/null +++ b/challenge-196/arne-sommer/raku/pattern132 @@ -0,0 +1,22 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@list where @list.elems > 0 && all(@list) ~~ /^<[1..9]><[0..9]>*$/); + +my $end = @list.elems - 1; + +for 0 .. $end - 2 -> $i +{ + for $i + 1 .. $end - 1 -> $j + { + for $j + 1 .. $end -> $k + { + if @list[$i] < @list[$k] < @list[$j] + { + say "(@list[$i], @list[$j], @list[$k])"; + exit; + } + } + } +} + +say "()"; diff --git a/challenge-196/arne-sommer/raku/range-list b/challenge-196/arne-sommer/raku/range-list new file mode 100755 index 0000000000..c226623d63 --- /dev/null +++ b/challenge-196/arne-sommer/raku/range-list @@ -0,0 +1,25 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@array where @array.elems > 1 && all(@array) ~~ /^<[0..9]>+$/ && [<] @array); + +my @ranges; +my $from = @array.shift.Int; +my $to = $from; + +while @array +{ + my $next = @array.shift.Int; + if $next == $to + 1 + { + $to = $next; + } + else + { + @ranges.push([$from, $to]) if $to > $from; + $from = $to = $next; + } +} + +@ranges.push([$from, $to]) if $to > $from; + +say @ranges.raku; |
