aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsangeet <sangeet.kar@gmail.com>2020-05-27 14:37:39 +0000
committersangeet <sangeet.kar@gmail.com>2020-05-27 14:37:39 +0000
commitf753553d92534019a9b35c1e595396c0aeeb8f18 (patch)
treebb0d8800a4e2059cfdeca5d4b972e5d2ff14e4a5
parent3a5332d7b344d554f481faa1da1486880d959fbc (diff)
downloadperlweeklychallenge-club-f753553d92534019a9b35c1e595396c0aeeb8f18.tar.gz
perlweeklychallenge-club-f753553d92534019a9b35c1e595396c0aeeb8f18.tar.bz2
perlweeklychallenge-club-f753553d92534019a9b35c1e595396c0aeeb8f18.zip
First attempt
-rw-r--r--challenge-062/sangeet-kar/raku/ch-1.1.sh1
-rw-r--r--challenge-062/sangeet-kar/raku/ch-1.2.sh1
-rwxr-xr-xchallenge-062/sangeet-kar/raku/ch-1.raku7
-rwxr-xr-xchallenge-062/sangeet-kar/raku/ch-2.raku35
-rw-r--r--challenge-062/sangeet-kar/raku/mails.txt5
-rw-r--r--challenge-062/sangeet-kar/raku/mails2.txt1
6 files changed, 50 insertions, 0 deletions
diff --git a/challenge-062/sangeet-kar/raku/ch-1.1.sh b/challenge-062/sangeet-kar/raku/ch-1.1.sh
new file mode 100644
index 0000000000..fd94c10be9
--- /dev/null
+++ b/challenge-062/sangeet-kar/raku/ch-1.1.sh
@@ -0,0 +1 @@
+raku -e 'lines>>.split("@").sort({.[1].lc ~ .[0]})>>.join("@")>>.say' mails.txt mails2.txt
diff --git a/challenge-062/sangeet-kar/raku/ch-1.2.sh b/challenge-062/sangeet-kar/raku/ch-1.2.sh
new file mode 100644
index 0000000000..c5975bcb52
--- /dev/null
+++ b/challenge-062/sangeet-kar/raku/ch-1.2.sh
@@ -0,0 +1 @@
+raku -e 'lines>>.split("@").unique(as=>{.[0] ~ .[1].lc}).sort({.[1].lc ~ .[0]})>>.join("@")>>.say' mails.txt
diff --git a/challenge-062/sangeet-kar/raku/ch-1.raku b/challenge-062/sangeet-kar/raku/ch-1.raku
new file mode 100755
index 0000000000..bf5c4afd00
--- /dev/null
+++ b/challenge-062/sangeet-kar/raku/ch-1.raku
@@ -0,0 +1,7 @@
+#!/usr/bin/env raku
+
+sub MAIN(Bool :$u=False, *@files){
+ my @mails = @files ?? @files.flatmap(*.IO.lines)
+ !! $*IN.lines;
+ @mails».split("@").&{$u ?? .unique(as => {$^a[0] ~ $^a[1].lc}) !! .self}.sort({.[1].lc ~ .[0]})».join("@")».say;
+}
diff --git a/challenge-062/sangeet-kar/raku/ch-2.raku b/challenge-062/sangeet-kar/raku/ch-2.raku
new file mode 100755
index 0000000000..4a124254fb
--- /dev/null
+++ b/challenge-062/sangeet-kar/raku/ch-2.raku
@@ -0,0 +1,35 @@
+#!/usr/bin/env raku
+
+sub n-queens-threeD($n = 2) {
+ my @solutions = [];
+ place-queen [^$n X ^$n X ^$n], [], @solutions;
+ return indices-to-array @solutions.max(+*), $n;
+}
+
+
+sub place-queen(@indices, @queens, @solutions) {
+ @solutions.push([@queens]) if not @indices;
+ for @indices -> $pos {
+ place-queen(@indices.grep({is-available($pos, $_)}), (|@queens, $pos), @solutions);
+ }
+}
+
+
+sub is-available($ref, $pos) {
+ my ($refx, $refy, $refz) = $ref;
+ my ($x, $y, $z) = $pos;
+ my $diff = ($ref »-« $pos)».abs.Set;
+ not (+$diff == 1 || (+$diff == 2 && 0 ∈ $diff))
+}
+
+sub indices-to-array(@indices, $n) {
+ my @array = [[[ 0 xx $n] xx $n] xx $n];
+ for @indices -> ($x, $y, $z) {
+ @array[$x; $y; $z] = 1;
+ }
+ return @array;
+}
+
+sub MAIN (Int :$n=2) {
+ say n-queens-threeD $n;
+}
diff --git a/challenge-062/sangeet-kar/raku/mails.txt b/challenge-062/sangeet-kar/raku/mails.txt
new file mode 100644
index 0000000000..5dc3f2ceb0
--- /dev/null
+++ b/challenge-062/sangeet-kar/raku/mails.txt
@@ -0,0 +1,5 @@
+name@example.org
+rjt@cpan.org
+Name@example.org
+rjt@CPAN.org
+user@alpha.example.org
diff --git a/challenge-062/sangeet-kar/raku/mails2.txt b/challenge-062/sangeet-kar/raku/mails2.txt
new file mode 100644
index 0000000000..10ec915529
--- /dev/null
+++ b/challenge-062/sangeet-kar/raku/mails2.txt
@@ -0,0 +1 @@
+ssk@gmail.com