diff options
| author | Simon Proctor <simon.proctor@zpg.co.uk> | 2019-07-22 14:17:30 +0100 |
|---|---|---|
| committer | Simon Proctor <simon.proctor@zpg.co.uk> | 2019-07-22 14:17:30 +0100 |
| commit | a517fd0485c34a5c8ad8575acefd11e910bd0763 (patch) | |
| tree | dbba07a6d56d0d5349485f2743447b3c6acd47e2 /challenge-018 | |
| parent | 1d03bfdae1130bbf391661bbb7e3f6fd1917e6c3 (diff) | |
| download | perlweeklychallenge-club-a517fd0485c34a5c8ad8575acefd11e910bd0763.tar.gz perlweeklychallenge-club-a517fd0485c34a5c8ad8575acefd11e910bd0763.tar.bz2 perlweeklychallenge-club-a517fd0485c34a5c8ad8575acefd11e910bd0763.zip | |
Update my queue to be iterable
Diffstat (limited to 'challenge-018')
| -rw-r--r-- | challenge-018/simon-proctor/perl6/ch-2.p6 | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/challenge-018/simon-proctor/perl6/ch-2.p6 b/challenge-018/simon-proctor/perl6/ch-2.p6 index 79c7161676..4b7858f317 100644 --- a/challenge-018/simon-proctor/perl6/ch-2.p6 +++ b/challenge-018/simon-proctor/perl6/ch-2.p6 @@ -16,7 +16,7 @@ role SingleQueue { } } -role OrderedQueue { +role OrderedQueue does Iterator does Iterable { has SingleQueue %!queues; @@ -50,19 +50,25 @@ role OrderedQueue { } return $value; } + + method pull-one() { + self.pull-highest-priority-element // IterationEnd; + } + + method iterator() { + return self; + } } #| Given a file in csv format "priority,item" add all the items to the queue #| then print them in the given order sub MAIN( $file ) { - my $queue = OrderedQueue.new(); + my $queue := OrderedQueue.new(); for $file.IO.lines -> $line { my ( $priority, $item ) = $line.split(","); $queue.insert-with-priority( $item, $priority ); } - while ! $queue.is-empty { - $queue.pull-highest-priority-element().say; - } + .say for $queue; }
\ No newline at end of file |
