summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillermo Ramos2019-04-26 00:13:43 +0200
committerGuillermo Ramos2019-04-26 00:13:43 +0200
commit6be991fc143b51a6f51a2458000afcaf577f6ac0 (patch)
treee5e2e8b7062078779b2b0642f039ebb784fad9a9
parent14f80772cd91555d4b3862e57460b832e88e5b22 (diff)
downloadeuler-6be991fc143b51a6f51a2458000afcaf577f6ac0.tar.gz
[perl] p6
-rwxr-xr-xperl/p6.pl29
1 files changed, 29 insertions, 0 deletions
diff --git a/perl/p6.pl b/perl/p6.pl
new file mode 100755
index 0000000..74ebbef
--- /dev/null
+++ b/perl/p6.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use List::Util qw(reduce);
+
+my ($sum_of_squares, $sum);
+
+# Functional
+sub iter {
+ my ($sum_of_squares, $sum) = @{+shift};
+ my $n = shift;
+ $sum_of_squares += $n**2;
+ $sum += $n;
+ return [$sum_of_squares, $sum];
+}
+
+($sum_of_squares, $sum) = @{+reduce { iter($a, $b) } [0, 0], (1..100)};
+print $sum_of_squares - ($sum**2), "\n";
+
+$sum_of_squares = 0;
+$sum = 0;
+# imperative
+for my $n (1..100) {
+ $sum_of_squares += $n**2;
+ $sum += $n;
+}
+print $sum_of_squares - ($sum**2), "\n";