aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-04-19 00:30:08 +0100
committerGitHub <noreply@github.com>2021-04-19 00:30:08 +0100
commit98d54cf8cbacc6d6a1f282548fc1e712e961f446 (patch)
tree225d707a5426775c08f63d3606f8d51bd468383a
parent7727261245500a7e80511a2f552cd74639d32b4c (diff)
parent8f695d47573c8b2238d45db5a4192015cbb29684 (diff)
downloadperlweeklychallenge-club-98d54cf8cbacc6d6a1f282548fc1e712e961f446.tar.gz
perlweeklychallenge-club-98d54cf8cbacc6d6a1f282548fc1e712e961f446.tar.bz2
perlweeklychallenge-club-98d54cf8cbacc6d6a1f282548fc1e712e961f446.zip
Merge pull request #3914 from arnesom/branch-for-challenge-108
Arne Sommer
-rw-r--r--challenge-108/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-108/arne-sommer/perl/bell-triangle-perl31
-rwxr-xr-xchallenge-108/arne-sommer/perl/ch-1.pl28
-rwxr-xr-xchallenge-108/arne-sommer/perl/ch-2.pl31
-rwxr-xr-xchallenge-108/arne-sommer/perl/locate-memory-perl15
-rwxr-xr-xchallenge-108/arne-sommer/perl/locate-memory-perl-bigint28
-rwxr-xr-xchallenge-108/arne-sommer/perl/locate-memory-perl-hex21
-rwxr-xr-xchallenge-108/arne-sommer/raku/bell-triangle29
-rwxr-xr-xchallenge-108/arne-sommer/raku/ch-1.raku9
-rwxr-xr-xchallenge-108/arne-sommer/raku/ch-2.raku29
-rwxr-xr-xchallenge-108/arne-sommer/raku/locate-memory9
11 files changed, 231 insertions, 0 deletions
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 = <A 1299>;
+
+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 = <A 1299>;
+
+say $str.WHERE;
+say $int.WHERE;
+say @array.WHERE;