diff options
| -rw-r--r-- | challenge-098/luca-ferrari/blog-1.txt | 1 | ||||
| -rw-r--r-- | challenge-098/luca-ferrari/blog-2.txt | 1 | ||||
| -rw-r--r-- | challenge-098/luca-ferrari/raku/ch-1.p6 | 14 | ||||
| -rw-r--r-- | challenge-098/luca-ferrari/raku/ch-2.p6 | 24 |
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; + } + +} |
