aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2023-01-16 09:29:28 +0100
committerLuca Ferrari <fluca1978@gmail.com>2023-01-16 09:29:28 +0100
commit9e638419327ceacef7cb2d571aed2750d533b1d7 (patch)
tree5f4347071e8f73111ea13c3f94d6e5d445307339
parentb8a1cd65abd85f6cf9df5b9dc5bc34677763b531 (diff)
downloadperlweeklychallenge-club-9e638419327ceacef7cb2d571aed2750d533b1d7.tar.gz
perlweeklychallenge-club-9e638419327ceacef7cb2d571aed2750d533b1d7.tar.bz2
perlweeklychallenge-club-9e638419327ceacef7cb2d571aed2750d533b1d7.zip
Task 1 done
-rw-r--r--challenge-200/luca-ferrari/raku/ch-1.p634
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-200/luca-ferrari/raku/ch-1.p6 b/challenge-200/luca-ferrari/raku/ch-1.p6
new file mode 100644
index 0000000000..7acf58814b
--- /dev/null
+++ b/challenge-200/luca-ferrari/raku/ch-1.p6
@@ -0,0 +1,34 @@
+#!raku
+
+#
+# Perl Weekly Challenge 200
+# Task 1
+#
+# See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-200/>
+#
+
+sub MAIN( *@list where { @list.elems == @list.grep( * ~~ Int ).elems } ) {
+ my @slices;
+
+ for 0 ^..^ @list.elems - 1 -> $center {
+ for 1 .. $center {
+ my ( $start, $end ) = $center - $_, $center + $_;
+ $start = 0 if $start < 0;
+ $end = @list.elems - 1 if $end >= @list.elems;
+
+ my @seeking = @list[ $start .. $end ];
+ my $ok = @list.elems >= 3;
+ for 1 ..^ @seeking.elems {
+ state $difference = @seeking[ $_ ] - @seeking[ $_ - 1 ];
+ $ok = False and last if @seeking[ $_ ] - @seeking[ $_ - 1 ] != $difference;
+ }
+
+ @slices.push: @seeking if $ok;
+ }
+ }
+
+ @slices.join( "\n" ).say;
+
+
+
+}