aboutsummaryrefslogtreecommitdiff
path: root/challenge-068
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2020-07-08 19:11:43 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2020-07-08 19:11:43 +0100
commite155bdebc88169fd334baa3a1b4897219c515708 (patch)
tree84d17a4ee6f36b7a9f17261bcc55378b35d56b6e /challenge-068
parent6ca35989e5fec2295ba0fa6cb1441c05fabc9a97 (diff)
downloadperlweeklychallenge-club-e155bdebc88169fd334baa3a1b4897219c515708.tar.gz
perlweeklychallenge-club-e155bdebc88169fd334baa3a1b4897219c515708.tar.bz2
perlweeklychallenge-club-e155bdebc88169fd334baa3a1b4897219c515708.zip
- Tidied up Raku solutions.
Diffstat (limited to 'challenge-068')
-rw-r--r--challenge-068/mohammad-anwar/raku/ch-2.raku17
-rw-r--r--challenge-068/mohammad-anwar/raku/ch-2a.raku15
2 files changed, 13 insertions, 19 deletions
diff --git a/challenge-068/mohammad-anwar/raku/ch-2.raku b/challenge-068/mohammad-anwar/raku/ch-2.raku
index 893071ea44..363fd38b8a 100644
--- a/challenge-068/mohammad-anwar/raku/ch-2.raku
+++ b/challenge-068/mohammad-anwar/raku/ch-2.raku
@@ -12,12 +12,9 @@ class Node {
has Int $.v is rw;
has Node $.c is rw;
- multi method c() { return $!c }
- multi method c(Node $c) { $!c = $c }
-
method show-link() {
my $c = $!c;
- my @v = ($!v);
+ my @v = $!v;
while defined $c {
@v.push: $c.v;
@@ -28,7 +25,7 @@ class Node {
}
}
-sub MAIN(Str :$linked-list? = '1 -> 2 -> 3 -> 4 -> 5') {
+sub MAIN(Str :$linked-list = '1 -> 2 -> 3 -> 4 -> 5') {
reorder-list($linked-list).show-link.say;
}
@@ -37,12 +34,12 @@ sub reorder-list(Str $linked-list is copy) {
$linked-list ~~ s:g/\s//;
my @list = $linked-list.split('->');
my $head = Node.new(v => @list.shift.Int);
- my @link = ($head);
+ my @link = $head;
# prepare singly linked list
for @list -> $v {
my $node = Node.new(v => $v.Int);
- @link.tail.c($node);
+ @link.tail.c = $node;
@link.push: $node;
}
@@ -53,9 +50,9 @@ sub reorder-list(Str $linked-list is copy) {
for $min .. $max-1 {
my $last = @link.pop;
@link.splice($i, 0, $last);
- @link.tail.c(Node);
- @link[$i - 1].c($last);
- @link[$i].c(@link[$i + 1]);
+ @link.tail.c = Node;
+ @link[$i - 1].c = $last;
+ @link[$i].c = @link[$i + 1];
$i += 2;
}
diff --git a/challenge-068/mohammad-anwar/raku/ch-2a.raku b/challenge-068/mohammad-anwar/raku/ch-2a.raku
index f3ba152c88..829aaf7b25 100644
--- a/challenge-068/mohammad-anwar/raku/ch-2a.raku
+++ b/challenge-068/mohammad-anwar/raku/ch-2a.raku
@@ -12,12 +12,9 @@ class Node {
has Int $.v is rw;
has Node $.c is rw;
- multi method c() { return $!c }
- multi method c(Node $c) { $!c = $c }
-
method show-link() {
my $c = $!c;
- my @v = ($!v);
+ my @v = $!v;
while defined $c {
@v.push: $c.v;
@@ -47,12 +44,12 @@ sub reorder-list(Str $linked-list is copy) {
$linked-list ~~ s:g/\s//;
my @list = $linked-list.split('->');
my $head = Node.new(v => @list.shift.Int);
- my @link = ($head);
+ my @link = $head;
# prepare singly linked list
for @list -> $v {
my $node = Node.new(v => $v.Int);
- @link.tail.c($node);
+ @link.tail.c = $node;
@link.push: $node;
}
@@ -63,9 +60,9 @@ sub reorder-list(Str $linked-list is copy) {
for $min .. $max-1 {
my $last = @link.pop;
@link.splice($i, 0, $last);
- @link.tail.c(Node);
- @link[$i - 1].c($last);
- @link[$i].c(@link[$i + 1]);
+ @link.tail.c = Node;
+ @link[$i - 1].c = $last;
+ @link[$i].c = @link[$i + 1];
$i += 2;
}