aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-02-02 07:50:29 +0000
committerGitHub <noreply@github.com>2021-02-02 07:50:29 +0000
commitb5e825100341ae2fed6b4e9f8bd72d08cb5a4a47 (patch)
treeb0af4cba32012aa46e53bb5f1cdb20a16aacc3ef
parenta5995b99a030eaeb730325f823b0a1300336a884 (diff)
parent16b6fa1d65e6e81d54dcbbd56e0fbbd1baffab38 (diff)
downloadperlweeklychallenge-club-b5e825100341ae2fed6b4e9f8bd72d08cb5a4a47.tar.gz
perlweeklychallenge-club-b5e825100341ae2fed6b4e9f8bd72d08cb5a4a47.tar.bz2
perlweeklychallenge-club-b5e825100341ae2fed6b4e9f8bd72d08cb5a4a47.zip
Merge pull request #3436 from fluca1978/pwc98
Pwc98
-rw-r--r--challenge-098/luca-ferrari/blog-1.txt1
-rw-r--r--challenge-098/luca-ferrari/blog-2.txt1
-rw-r--r--challenge-098/luca-ferrari/raku/ch-1.p614
-rw-r--r--challenge-098/luca-ferrari/raku/ch-2.p624
4 files changed, 40 insertions, 0 deletions
diff --git a/challenge-098/luca-ferrari/blog-1.txt b/challenge-098/luca-ferrari/blog-1.txt
new file mode 100644
index 0000000000..ea83d9e18e
--- /dev/null
+++ b/challenge-098/luca-ferrari/blog-1.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2021/02/01/PerlWeeklyChallenge98.html#task1
diff --git a/challenge-098/luca-ferrari/blog-2.txt b/challenge-098/luca-ferrari/blog-2.txt
new file mode 100644
index 0000000000..2510cdb1cc
--- /dev/null
+++ b/challenge-098/luca-ferrari/blog-2.txt
@@ -0,0 +1 @@
+https://fluca1978.github.io/2021/02/01/PerlWeeklyChallenge98.html#task2
diff --git a/challenge-098/luca-ferrari/raku/ch-1.p6 b/challenge-098/luca-ferrari/raku/ch-1.p6
new file mode 100644
index 0000000000..9835075cef
--- /dev/null
+++ b/challenge-098/luca-ferrari/raku/ch-1.p6
@@ -0,0 +1,14 @@
+#!raku
+
+
+sub readN( Str $file-name, Int $how-many-chars where { $how-many-chars >= 1 } ) {
+ state %handles = ();
+ %handles{ $file-name } //= $file-name.IO.open;
+ return %handles{ $file-name }.readchars: $how-many-chars;
+}
+
+sub MAIN( Str $file-name ) {
+ say readN( $file-name, 4 );
+ say readN( $file-name, 4 );
+ say readN( '/home/luca/.zshrc', 10 );
+}
diff --git a/challenge-098/luca-ferrari/raku/ch-2.p6 b/challenge-098/luca-ferrari/raku/ch-2.p6
new file mode 100644
index 0000000000..e0a24eddc5
--- /dev/null
+++ b/challenge-098/luca-ferrari/raku/ch-2.p6
@@ -0,0 +1,24 @@
+#!raku
+
+# Get an array of integers, the last value is the need to search for
+# while all the other values are the array to search into.
+# For example:
+# ch-2.p6 1 2 3 7 8 9 5
+# means
+# @N = 1,2,3,7,8,9
+# $N = 5
+sub MAIN( *@values where { @values.grep: * ~~ Int } ) {
+ my @N = @values[0 .. *-2 ];
+ my $N = @values[ *-1 ];
+# say "Array { @N } searching for $N";
+
+ # get the index if the element is there
+ given @N.grep( $N, :k ).first { .say && exit if $_ }
+
+ # if here the key is not there, let's see where to insert
+ given @N.grep( { $_ >= $N }, :k ).first {
+ @N = |@N[ 0 .. $_ - 1 ], $N, |@N[ $_ .. * ];
+ .say && exit;
+ }
+
+}