aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsangeet <sangeet.kar@gmail.com>2020-06-13 07:21:35 +0000
committersangeet <sangeet.kar@gmail.com>2020-06-13 07:21:35 +0000
commit73fc954181caad569309a76e715bb5a7f2b92589 (patch)
tree0457e4da7ca30e7a5cd21f75ef6bf14e2162fc56
parent0da7c3e8edf48be6dd6cae0ad0287a03af60ffbf (diff)
downloadperlweeklychallenge-club-73fc954181caad569309a76e715bb5a7f2b92589.tar.gz
perlweeklychallenge-club-73fc954181caad569309a76e715bb5a7f2b92589.tar.bz2
perlweeklychallenge-club-73fc954181caad569309a76e715bb5a7f2b92589.zip
raku solutions
-rwxr-xr-xchallenge-064/sangeet-kar/raku/ch-1.raku2
-rwxr-xr-xchallenge-064/sangeet-kar/raku/ch-2.raku23
2 files changed, 24 insertions, 1 deletions
diff --git a/challenge-064/sangeet-kar/raku/ch-1.raku b/challenge-064/sangeet-kar/raku/ch-1.raku
index b39bc4e468..a1a4a9e63c 100755
--- a/challenge-064/sangeet-kar/raku/ch-1.raku
+++ b/challenge-064/sangeet-kar/raku/ch-1.raku
@@ -12,7 +12,7 @@ class Node {
sub manhattan-dist ($pos, $goal) { ($goal »-« $pos).sum }
sub next-states ($pos, $matrix) {
- (((1, 0), (0, 1), (-1, 0), (0, -1)) »+» ($pos,*)).grep({(0 ≤ $_[0] < 0+$matrix) && (0 ≤ $_[1] < 0+$matrix[0])}).map({tuple($_)});
+ (((1, 0), (0, 1), (-1, 0), (0, -1)) »+» ($pos,)).grep({(0 ≤ $_[0] < 0+$matrix) && (0 ≤ $_[1] < 0+$matrix[0])}).map({tuple($_)})
}
sub move($curr-node, $pos, $matrix) {
diff --git a/challenge-064/sangeet-kar/raku/ch-2.raku b/challenge-064/sangeet-kar/raku/ch-2.raku
new file mode 100755
index 0000000000..ab0f03e78f
--- /dev/null
+++ b/challenge-064/sangeet-kar/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+
+sub word-break($string, $words) {
+ my @ans;
+ recursive-helper($string, $words, (), @ans);
+ return @ans;
+}
+
+sub recursive-helper($string, $words, $accum, @ans) {
+ unless $string {
+ @ans.push($accum);
+ return;
+ }
+ for $words.list {
+ recursive-helper($string.substr(.chars), $words, (|$accum, $_), @ans) if $string.starts-with($_);
+ }
+}
+
+say word-break("perlweeklychallenge", <weekly challenge perl>);
+say word-break("perlandraku", <python ruby haskell>);
+
+#multiple solutions
+say word-break("perlandraku", <perl perland raku and>);