diff options
| -rw-r--r-- | challenge-098/luca-ferrari/raku/ch-1.p6 | 14 | ||||
| -rw-r--r-- | challenge-098/luca-ferrari/raku/ch-2.p6 | 27 |
2 files changed, 41 insertions, 0 deletions
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..dc9bbdd1dd --- /dev/null +++ b/challenge-098/luca-ferrari/raku/ch-2.p6 @@ -0,0 +1,27 @@ +#!raku + + +sub MAIN( ) { + my @N = 1,2,3,4, 7; + my $N = 6; + say "Array { @N } searching for $N"; + + # get the index if the element is there + given @N.grep: $N, :k { .say && exit if $_ } + + # if here the element is not there + # for @N.List.kv -> $k, $v { + # if ( $v > $N ) { + # @N = |@N[ 0 .. $k - 1 ], $N, |@N[ $k .. * ]; + # "Insert value $N at index $k".say; + # } + # } + + + given @N.grep: { $_ > $N }, :k { + @N = |@N[ 0 .. $_ - 1 ], $N, |@N[ $_ .. * ]; + "Insert value $N at index $_".say; + exit; + } + +} |
