From 8f695d47573c8b2238d45db5a4192015cbb29684 Mon Sep 17 00:00:00 2001 From: arnesom Date: Sun, 18 Apr 2021 21:29:28 +0200 Subject: Arne Sommer --- challenge-108/arne-sommer/blog.txt | 1 + challenge-108/arne-sommer/perl/bell-triangle-perl | 31 ++++++++++++++++++++++ challenge-108/arne-sommer/perl/ch-1.pl | 28 +++++++++++++++++++ challenge-108/arne-sommer/perl/ch-2.pl | 31 ++++++++++++++++++++++ challenge-108/arne-sommer/perl/locate-memory-perl | 15 +++++++++++ .../arne-sommer/perl/locate-memory-perl-bigint | 28 +++++++++++++++++++ .../arne-sommer/perl/locate-memory-perl-hex | 21 +++++++++++++++ challenge-108/arne-sommer/raku/bell-triangle | 29 ++++++++++++++++++++ challenge-108/arne-sommer/raku/ch-1.raku | 9 +++++++ challenge-108/arne-sommer/raku/ch-2.raku | 29 ++++++++++++++++++++ challenge-108/arne-sommer/raku/locate-memory | 9 +++++++ 11 files changed, 231 insertions(+) create mode 100644 challenge-108/arne-sommer/blog.txt create mode 100755 challenge-108/arne-sommer/perl/bell-triangle-perl create mode 100755 challenge-108/arne-sommer/perl/ch-1.pl create mode 100755 challenge-108/arne-sommer/perl/ch-2.pl create mode 100755 challenge-108/arne-sommer/perl/locate-memory-perl create mode 100755 challenge-108/arne-sommer/perl/locate-memory-perl-bigint create mode 100755 challenge-108/arne-sommer/perl/locate-memory-perl-hex create mode 100755 challenge-108/arne-sommer/raku/bell-triangle create mode 100755 challenge-108/arne-sommer/raku/ch-1.raku create mode 100755 challenge-108/arne-sommer/raku/ch-2.raku create mode 100755 challenge-108/arne-sommer/raku/locate-memory diff --git a/challenge-108/arne-sommer/blog.txt b/challenge-108/arne-sommer/blog.txt new file mode 100644 index 0000000000..df29fc0bdd --- /dev/null +++ b/challenge-108/arne-sommer/blog.txt @@ -0,0 +1 @@ +https://raku-musings.com/locate-bell.html diff --git a/challenge-108/arne-sommer/perl/bell-triangle-perl b/challenge-108/arne-sommer/perl/bell-triangle-perl new file mode 100755 index 0000000000..4e7cc837fc --- /dev/null +++ b/challenge-108/arne-sommer/perl/bell-triangle-perl @@ -0,0 +1,31 @@ +#! /usr/bin/env perl + +use strict; +use warnings; + +use feature 'say'; + +my $count = $ARGV[0] // 10; + +say 1; exit if $count == 1; +say 1; exit if $count == 2; + +my @first = (1); +my @triangle = (\@first); +my $row = 0; + +while ($count-- > 0) +{ + $row++; + my @prev = @{$triangle[$row-1]}; + my @new = $prev[-1]; + + for my $index (0 .. @prev -1) + { + push(@new, $new[-1] + $prev[$index]); + } + + push(@triangle, \@new); + + say $new[-1]; +} diff --git a/challenge-108/arne-sommer/perl/ch-1.pl b/challenge-108/arne-sommer/perl/ch-1.pl new file mode 100755 index 0000000000..d77078d14a --- /dev/null +++ b/challenge-108/arne-sommer/perl/ch-1.pl @@ -0,0 +1,28 @@ +#! /usr/bin/env perl + +use strict; +use warnings; + +use feature 'say'; +use Math::BigInt; + +my $str = 'A'; +my $int = 1299; +my @array = qw/A 1299/; + + +say get_int_value(\$str); +say get_int_value(\$int); +say get_int_value(\@array); + +sub get_int_value +{ + my $string = shift; + $string =~ /(0x[a-f\d]+)/; + return hex($1); + return Math::BigInt->new($1); +} + + +say hex("0x55ac8143d358"); +say Math::BigInt->new("0x55ac8143d358"); diff --git a/challenge-108/arne-sommer/perl/ch-2.pl b/challenge-108/arne-sommer/perl/ch-2.pl new file mode 100755 index 0000000000..4e7cc837fc --- /dev/null +++ b/challenge-108/arne-sommer/perl/ch-2.pl @@ -0,0 +1,31 @@ +#! /usr/bin/env perl + +use strict; +use warnings; + +use feature 'say'; + +my $count = $ARGV[0] // 10; + +say 1; exit if $count == 1; +say 1; exit if $count == 2; + +my @first = (1); +my @triangle = (\@first); +my $row = 0; + +while ($count-- > 0) +{ + $row++; + my @prev = @{$triangle[$row-1]}; + my @new = $prev[-1]; + + for my $index (0 .. @prev -1) + { + push(@new, $new[-1] + $prev[$index]); + } + + push(@triangle, \@new); + + say $new[-1]; +} diff --git a/challenge-108/arne-sommer/perl/locate-memory-perl b/challenge-108/arne-sommer/perl/locate-memory-perl new file mode 100755 index 0000000000..24a66382d5 --- /dev/null +++ b/challenge-108/arne-sommer/perl/locate-memory-perl @@ -0,0 +1,15 @@ +#! /usr/bin/env perl + +use strict; +use warnings; + +use feature 'say'; + +my $str = 'A'; +my $int = 1299; +my @array = qw/A 1299/; + +say \$str; +say \$int; +say \@array; + diff --git a/challenge-108/arne-sommer/perl/locate-memory-perl-bigint b/challenge-108/arne-sommer/perl/locate-memory-perl-bigint new file mode 100755 index 0000000000..d77078d14a --- /dev/null +++ b/challenge-108/arne-sommer/perl/locate-memory-perl-bigint @@ -0,0 +1,28 @@ +#! /usr/bin/env perl + +use strict; +use warnings; + +use feature 'say'; +use Math::BigInt; + +my $str = 'A'; +my $int = 1299; +my @array = qw/A 1299/; + + +say get_int_value(\$str); +say get_int_value(\$int); +say get_int_value(\@array); + +sub get_int_value +{ + my $string = shift; + $string =~ /(0x[a-f\d]+)/; + return hex($1); + return Math::BigInt->new($1); +} + + +say hex("0x55ac8143d358"); +say Math::BigInt->new("0x55ac8143d358"); diff --git a/challenge-108/arne-sommer/perl/locate-memory-perl-hex b/challenge-108/arne-sommer/perl/locate-memory-perl-hex new file mode 100755 index 0000000000..f59b2114a9 --- /dev/null +++ b/challenge-108/arne-sommer/perl/locate-memory-perl-hex @@ -0,0 +1,21 @@ +#! /usr/bin/env perl + +use strict; +use warnings; + +use feature 'say'; + +my $str = 'A'; +my $int = 1299; +my @array = qw/A 1299/; + +say get_hex_value(\$str); +say get_hex_value(\$int); +say get_hex_value(\@array); + +sub get_hex_value +{ + my $string = shift; + $string =~ /(0x[a-f\d]+)/; + return $1; +} diff --git a/challenge-108/arne-sommer/raku/bell-triangle b/challenge-108/arne-sommer/raku/bell-triangle new file mode 100755 index 0000000000..fc02fcfea6 --- /dev/null +++ b/challenge-108/arne-sommer/raku/bell-triangle @@ -0,0 +1,29 @@ +#! /usr/bin/env raku + +unit sub MAIN ($count = 10); + +my $bell-triangle := gather +{ + take 1; + take 1; + my @triangle = ((1)); + my $row = 0; + + loop + { + $row++; + my @prev = @triangle[$row-1].flat; + my @new = @prev[*-1]; + + for ^@prev.elems -> $index + { + @new.push: @new[*-1] + @prev[$index]; + } + + @triangle.push: @new; + + take @new[*-1]; + } +} + +say $bell-triangle[^$count]; diff --git a/challenge-108/arne-sommer/raku/ch-1.raku b/challenge-108/arne-sommer/raku/ch-1.raku new file mode 100755 index 0000000000..04d9a5a797 --- /dev/null +++ b/challenge-108/arne-sommer/raku/ch-1.raku @@ -0,0 +1,9 @@ +#! /usr/bin/env raku + +my $str = 'A'; +my $int = 1299; +my @array = ; + +say $str.WHERE; +say $int.WHERE; +say @array.WHERE; diff --git a/challenge-108/arne-sommer/raku/ch-2.raku b/challenge-108/arne-sommer/raku/ch-2.raku new file mode 100755 index 0000000000..fc02fcfea6 --- /dev/null +++ b/challenge-108/arne-sommer/raku/ch-2.raku @@ -0,0 +1,29 @@ +#! /usr/bin/env raku + +unit sub MAIN ($count = 10); + +my $bell-triangle := gather +{ + take 1; + take 1; + my @triangle = ((1)); + my $row = 0; + + loop + { + $row++; + my @prev = @triangle[$row-1].flat; + my @new = @prev[*-1]; + + for ^@prev.elems -> $index + { + @new.push: @new[*-1] + @prev[$index]; + } + + @triangle.push: @new; + + take @new[*-1]; + } +} + +say $bell-triangle[^$count]; diff --git a/challenge-108/arne-sommer/raku/locate-memory b/challenge-108/arne-sommer/raku/locate-memory new file mode 100755 index 0000000000..04d9a5a797 --- /dev/null +++ b/challenge-108/arne-sommer/raku/locate-memory @@ -0,0 +1,9 @@ +#! /usr/bin/env raku + +my $str = 'A'; +my $int = 1299; +my @array = ; + +say $str.WHERE; +say $int.WHERE; +say @array.WHERE; -- cgit