4. Iterators (Permutation)
リストの全組み合わせを作る方法。
HOPの内容ではないけど、役に立つのであげておこう。
#!/usr/bin/env perl use strict; use warnings; sub permute { my @items = @{ $_[0] }; my @perms = @{ $_[1] }; unless (@items) { print "@perms\n"; } else { my (@newitems, @newperms, $i); foreach $i (0 .. $#items) { @newitems = @items; @newperms = @perms; unshift(@newperms, splice(@newitems, $i, 1)); permute([@newitems], [@newperms]); } } } permute([qw(A B C)], []);