Dinesman's multiple-dwelling problem: Difference between revisions
Content added Content deleted
SqrtNegInf (talk | contribs) m (→{{header|Perl}}: revised where 'warnings' pragma used) |
|||
Line 2,510: | Line 2,510: | ||
<lang perl>use strict; |
<lang perl>use strict; |
||
use warnings; |
use warnings; |
||
use feature |
use feature <state say>; |
||
use List::Util 1.33 qw(pairmap); |
use List::Util 1.33 qw(pairmap); |
||
use Algorithm::Permute qw(permute); |
use Algorithm::Permute qw(permute); |
||
Line 2,549: | Line 2,549: | ||
my $pred = $predicates{$+{pred}}; |
my $pred = $predicates{$+{pred}}; |
||
{ no warnings; |
|||
⚫ | |||
my $expr = '(' . sprintf($pred->[1], $id->($+{subj}), |
|||
$ |
$pred->[0] eq 'person' ? $id->($+{obj}) : $+{obj}). ')'; |
||
⚫ | |||
⚫ | |||
push @expressions, $expr; |
push @expressions, $expr; |
||
⚫ | |||
} |
} |
||
my @f = 1..$i; |
my @f = 1..$i; |
||
eval ' |
eval ' |
||
permute { |
permute { |
||
say join(", ", pairmap { "$f[$b] $a" } %ids) |
say join(", ", pairmap { "$f[$b] $a" } %ids) |