diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-07-08 19:11:43 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2020-07-08 19:11:43 +0100 |
| commit | e155bdebc88169fd334baa3a1b4897219c515708 (patch) | |
| tree | 84d17a4ee6f36b7a9f17261bcc55378b35d56b6e /challenge-068 | |
| parent | 6ca35989e5fec2295ba0fa6cb1441c05fabc9a97 (diff) | |
| download | perlweeklychallenge-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.raku | 17 | ||||
| -rw-r--r-- | challenge-068/mohammad-anwar/raku/ch-2a.raku | 15 |
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; } |
