diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-05-22 00:27:48 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-22 00:27:48 +0100 |
| commit | 6407597e2dd471b6dd4bcd1ac6dd7a4ffb8ec050 (patch) | |
| tree | 7b893bd89599a3717bea5ff894b135fe17dcf1a3 | |
| parent | 4c3f319e0162db89096ea5e61bdc49c42ff50321 (diff) | |
| parent | 09cb557d49b2058b90f91ccc58dfd65518c3ee2c (diff) | |
| download | perlweeklychallenge-club-6407597e2dd471b6dd4bcd1ac6dd7a4ffb8ec050.tar.gz perlweeklychallenge-club-6407597e2dd471b6dd4bcd1ac6dd7a4ffb8ec050.tar.bz2 perlweeklychallenge-club-6407597e2dd471b6dd4bcd1ac6dd7a4ffb8ec050.zip | |
Merge pull request #12060 from arnesom/branch-for-challenge-322
Arne Sommer
| -rw-r--r-- | challenge-322/arne-sommer/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-322/arne-sommer/raku/ch-1.raku | 28 | ||||
| -rwxr-xr-x | challenge-322/arne-sommer/raku/ch-2.raku | 23 | ||||
| -rwxr-xr-x | challenge-322/arne-sommer/raku/rank-array | 23 | ||||
| -rwxr-xr-x | challenge-322/arne-sommer/raku/string-format | 33 | ||||
| -rwxr-xr-x | challenge-322/arne-sommer/raku/string-format-reverse | 28 |
6 files changed, 136 insertions, 0 deletions
diff --git a/challenge-322/arne-sommer/blog.txt b/challenge-322/arne-sommer/blog.txt new file mode 100644 index 0000000000..e4948400f3 --- /dev/null +++ b/challenge-322/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/stringed-array.html diff --git a/challenge-322/arne-sommer/raku/ch-1.raku b/challenge-322/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..2719efa695 --- /dev/null +++ b/challenge-322/arne-sommer/raku/ch-1.raku @@ -0,0 +1,28 @@ +#! /usr/bin/env raku + +unit sub MAIN ($str is copy where $str.chars > 0, + Int $i where $i > 0, + :v(:$verbose)); + +$str ~~ s:g/"-"//; + +say ": Dash free: $str" if $verbose; + +my @new; + +while $str.chars >= $i +{ + my $add = $str.substr($str.chars - $i); + $str = $str.substr(0, $str.chars - $i); + + @new.unshift: $add; + say ": Full size part: $add" if $verbose; +} + +if $str.chars +{ + @new.unshift: $str; + say ": Short part: $str" if $verbose; +} + +say @new.join("-"); diff --git a/challenge-322/arne-sommer/raku/ch-2.raku b/challenge-322/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..991a565819 --- /dev/null +++ b/challenge-322/arne-sommer/raku/ch-2.raku @@ -0,0 +1,23 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems > 1 + && all(@ints) ~~ Int, + :v(:$verbose)); + +my @sorted = @ints.sort.squish; + +my %rank; +my $rank = 0; + +for @sorted -> $val +{ + $rank++; + + %rank{$val} = $rank; + + say ": Int $val has rank $rank" if $verbose; +} + +my @rank = @ints.map({ %rank{$_} }); + +say "({ @rank.join(", ") })"; diff --git a/challenge-322/arne-sommer/raku/rank-array b/challenge-322/arne-sommer/raku/rank-array new file mode 100755 index 0000000000..991a565819 --- /dev/null +++ b/challenge-322/arne-sommer/raku/rank-array @@ -0,0 +1,23 @@ +#! /usr/bin/env raku + +unit sub MAIN (*@ints where @ints.elems > 1 + && all(@ints) ~~ Int, + :v(:$verbose)); + +my @sorted = @ints.sort.squish; + +my %rank; +my $rank = 0; + +for @sorted -> $val +{ + $rank++; + + %rank{$val} = $rank; + + say ": Int $val has rank $rank" if $verbose; +} + +my @rank = @ints.map({ %rank{$_} }); + +say "({ @rank.join(", ") })"; diff --git a/challenge-322/arne-sommer/raku/string-format b/challenge-322/arne-sommer/raku/string-format new file mode 100755 index 0000000000..792cf9c53d --- /dev/null +++ b/challenge-322/arne-sommer/raku/string-format @@ -0,0 +1,33 @@ +#! /usr/bin/env raku + +unit sub MAIN ($str is copy where $str.chars > 0, + Int $i where $i > 0, + :v(:$verbose)); + +$str ~~ s:g/"-"//; + +say ": Dash free: $str" if $verbose; + +my @new; + +my $size = $str.chars % $i; + +if $size +{ + my $add = $str.substr(0, $size); + $str = $str.substr($size); + + @new.push: $add; + say ": Short part: $add" if $verbose; +} + +while $str.chars +{ + my $add = $str.substr(0, $i); + $str = $str.substr($i); + + @new.push: $add; + say ": Full size part: $add" if $verbose; +} + +say @new.join("-"); diff --git a/challenge-322/arne-sommer/raku/string-format-reverse b/challenge-322/arne-sommer/raku/string-format-reverse new file mode 100755 index 0000000000..2719efa695 --- /dev/null +++ b/challenge-322/arne-sommer/raku/string-format-reverse @@ -0,0 +1,28 @@ +#! /usr/bin/env raku + +unit sub MAIN ($str is copy where $str.chars > 0, + Int $i where $i > 0, + :v(:$verbose)); + +$str ~~ s:g/"-"//; + +say ": Dash free: $str" if $verbose; + +my @new; + +while $str.chars >= $i +{ + my $add = $str.substr($str.chars - $i); + $str = $str.substr(0, $str.chars - $i); + + @new.unshift: $add; + say ": Full size part: $add" if $verbose; +} + +if $str.chars +{ + @new.unshift: $str; + say ": Short part: $str" if $verbose; +} + +say @new.join("-"); |
