aboutsummaryrefslogtreecommitdiff
path: root/challenge-011
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2019-06-09 05:30:01 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2019-06-09 05:30:01 +0100
commitd4b277b14cf4fa525814ff76e0665f2151022fe0 (patch)
tree4fb51a0769468f02ba271fc646d2a93f1b855310 /challenge-011
parent82d3bc4156c6bc9a94bb5d6bca89b7b747371cc6 (diff)
downloadperlweeklychallenge-club-d4b277b14cf4fa525814ff76e0665f2151022fe0.tar.gz
perlweeklychallenge-club-d4b277b14cf4fa525814ff76e0665f2151022fe0.tar.bz2
perlweeklychallenge-club-d4b277b14cf4fa525814ff76e0665f2151022fe0.zip
- Added solutions by Arne Sommer.
Diffstat (limited to 'challenge-011')
-rw-r--r--challenge-011/arne-sommer/blog.txt1
-rwxr-xr-xchallenge-011/arne-sommer/perl6/ch-1.p619
-rwxr-xr-xchallenge-011/arne-sommer/perl6/ch-1a.p63
-rwxr-xr-xchallenge-011/arne-sommer/perl6/ch-2.p69
-rwxr-xr-xchallenge-011/arne-sommer/perl6/ch-2a.p626
-rwxr-xr-xchallenge-011/arne-sommer/perl6/ch-2b.p617
-rwxr-xr-xchallenge-011/arne-sommer/perl6/ch-2c.p610
-rwxr-xr-xchallenge-011/arne-sommer/perl6/ch-2d.p610
8 files changed, 95 insertions, 0 deletions
diff --git a/challenge-011/arne-sommer/blog.txt b/challenge-011/arne-sommer/blog.txt
new file mode 100644
index 0000000000..ff33263a07
--- /dev/null
+++ b/challenge-011/arne-sommer/blog.txt
@@ -0,0 +1 @@
+https://perl6.eu/fc-matrix.html
diff --git a/challenge-011/arne-sommer/perl6/ch-1.p6 b/challenge-011/arne-sommer/perl6/ch-1.p6
new file mode 100755
index 0000000000..8160d12bfe
--- /dev/null
+++ b/challenge-011/arne-sommer/perl6/ch-1.p6
@@ -0,0 +1,19 @@
+#! /usr/bin/env perl6
+
+my $c = 0;
+
+loop
+{
+ my $f = celcius2fahrenheit($c);
+ if $f <= $c
+ {
+ say "Fahrenheit ($f) and Celsius ($c) are equal(ish).";
+ last;
+ }
+ $c--;
+}
+
+sub celcius2fahrenheit ($c)
+{
+ return $c * 1.8 + 32;
+}
diff --git a/challenge-011/arne-sommer/perl6/ch-1a.p6 b/challenge-011/arne-sommer/perl6/ch-1a.p6
new file mode 100755
index 0000000000..9799e85810
--- /dev/null
+++ b/challenge-011/arne-sommer/perl6/ch-1a.p6
@@ -0,0 +1,3 @@
+#! /usr/bin/env perl6
+
+say "Fahrenheit and Celsius are equal at -40.";
diff --git a/challenge-011/arne-sommer/perl6/ch-2.p6 b/challenge-011/arne-sommer/perl6/ch-2.p6
new file mode 100755
index 0000000000..89ff615443
--- /dev/null
+++ b/challenge-011/arne-sommer/perl6/ch-2.p6
@@ -0,0 +1,9 @@
+#! /usr/bin/env perl6
+
+use Math::Matrix;
+
+unit sub MAIN (Int $size where $size > 0);
+
+my $im = Math::Matrix.new-identity( $size );
+
+say $im;
diff --git a/challenge-011/arne-sommer/perl6/ch-2a.p6 b/challenge-011/arne-sommer/perl6/ch-2a.p6
new file mode 100755
index 0000000000..0dd48982f3
--- /dev/null
+++ b/challenge-011/arne-sommer/perl6/ch-2a.p6
@@ -0,0 +1,26 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (Int $size where $size > 0);
+
+my @im[$size;$size] = 0 xx $size xx $size;
+
+@im[$_;$_] = 1 for ^$size;
+
+print @im.&nice-format;
+
+sub nice-format (@shaped)
+{
+ my ($row, $col) = @shaped.shape;
+
+ my $result;
+
+ for ^$row -> $x
+ {
+ for ^$col -> $y
+ {
+ $result ~= @shaped[$x;$y] ~ " ";
+ }
+ $result ~= "\n";
+ }
+ return $result;
+} \ No newline at end of file
diff --git a/challenge-011/arne-sommer/perl6/ch-2b.p6 b/challenge-011/arne-sommer/perl6/ch-2b.p6
new file mode 100755
index 0000000000..6c95394f34
--- /dev/null
+++ b/challenge-011/arne-sommer/perl6/ch-2b.p6
@@ -0,0 +1,17 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (Int $size where $size > 0);
+
+# my @im = 0 xx $size xx $size;
+# @im[$_;$_] = 1 for ^$size;
+
+my @row = (1, 0 xx $size -1).flat;
+my @x; @x.push: @row.rotate(- $_) for ^$size;
+my @im = @x;
+
+print @im.&nice-format;
+
+sub nice-format (@array)
+{
+ return (@($_).join(" ") for @array).join("\n") ~ "\n";
+} \ No newline at end of file
diff --git a/challenge-011/arne-sommer/perl6/ch-2c.p6 b/challenge-011/arne-sommer/perl6/ch-2c.p6
new file mode 100755
index 0000000000..2979c44550
--- /dev/null
+++ b/challenge-011/arne-sommer/perl6/ch-2c.p6
@@ -0,0 +1,10 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (Int $size where $size > 0);
+
+my @im[$size;$size] = 0 xx $size xx $size;
+
+@im[$_;$_] = 1 for ^$size;
+
+say @im;
+
diff --git a/challenge-011/arne-sommer/perl6/ch-2d.p6 b/challenge-011/arne-sommer/perl6/ch-2d.p6
new file mode 100755
index 0000000000..2458666409
--- /dev/null
+++ b/challenge-011/arne-sommer/perl6/ch-2d.p6
@@ -0,0 +1,10 @@
+#! /usr/bin/env perl6
+
+unit sub MAIN (Int $size where $size > 0);
+
+my @row = (1, 0 xx $size -1).flat;
+my @x; @x.push: @row.rotate(- $_) for ^$size;
+my @im[$size;$size] = @x;
+
+say @im;
+