Advent of Code day6をPerl 6で

こんにちは、9日目の投稿になります。
今日は投稿がなかったので、[Advent of Code day6](https://adventofcode.com/2017/day/6)の私の回答を貼っておきます。

```
use v6;                                                                                                                                                
                                                                                                                                                       
my Int @banks = $*IN.get.split("\t")>>.Int;                                                                                                            
                                                                                                                                                       
my %visited;                                                                                                                                           
                                                                                                                                                       
do until %visited{~@banks}:exists {                                                                                                                    
    %visited{~@banks} = True;                                                                                                                          
                                                                                                                                                       
    my $max = @banks.max; # (#1)                                                                                                                              
    my $target-bank-idx = 0;                                                                                                                           
    my $num-redistribution-blocks = 0;                                                                                                                 
    for @banks.pairs -> (:key($idx),:value($v)){ # (#2)                                                                                                      
        if $v == $max {                                                                                                                                
            $target-bank-idx = $idx;                                                                                                                   
            $num-redistribution-blocks = $v;                                                                                                           
            last;                                                                                                                                      
        }                                                                                                                                              
    }                                                                                                                                                  
    @banks[$target-bank-idx] = 0;                                                                                                                      
    my $pos = ($target-bank-idx + 1) % +@banks;                                                                                                        
    while $num-redistribution-blocks-- > 0 {                                                                                                           
        @banks[$pos]++;                                                                                                                                
        $pos++;                                                                                                                                        
        $pos %= +@banks;                                                                                                                               
    }                                                                                                                                                  
    1                                                                                                                                                  
}.sum.say; 
```

+ ポイント
  + `.max` でリストの中の最大値を取り出すことができます。 (#1)
  + `for @banks.pairs -> (:key($idx),:value($v))`は下記のように型を指定して記述することもできます (#2) (参考: https://perl6advent.wordpress.com/2017/12/05/ ):
     + `for @banks.pairs -> Pair $p (:key($idx),:value($v))`
     + `for @banks.pairs -> Pair $p (Int :key($idx), Int :value($v))`


以上、9日目の投稿でした。