sub min { eigenstates( any(@_) <= all(@_) ) } #### multimethod qblop => ( Quantum::Superpositions::Disj, Quantum::Superpositions::Conj, CODE ) => sub { &debug; return any() unless @{$_[0]} && @{$_[1]}; my @dstates = @{$_[0]}; my @cstates = @{$_[1]}; my @dokay = (0) x @dstates; foreach my $cstate ( @cstates ) # $cstate in (1,2,3) { my $matched; foreach my $d ( 0..$#dstates ) # $d in (0..2) { $matched = ++$dokay[$d] if istrue(qblop($dstates[$d], $cstate, $_[2])); } return any() unless $matched; } return any @dstates[grep { $dokay[$_] == @cstates } (0..$#dstates)]; }; #### $min = $list[0]; for my $i (1..$#list) { $min = $list[$i] if ($min > $list[$i]);}; #### sub is_prime { my ($n) = @_; return $n % all(2..sqrt($n)+1) != 0 }