Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Couple of small optimizations to meat-ops.
  • Loading branch information
jnthn committed Nov 1, 2011
1 parent 0f941b3 commit 0f582d8
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions src/core/metaops.pm
Expand Up @@ -21,7 +21,7 @@ sub METAOP_CROSS(\$op) {
my int $n = @lol.elems - 1;
gather {
while $i >= 0 {
if @l[$i] {
if @l[$i].gimme(1) {
@v[$i] = @l[$i].shift;
if $i >= $n { my @x = @v; take $rop(|@x); }
else {
Expand Down Expand Up @@ -50,26 +50,24 @@ sub METAOP_ZIP(\$op) {
}

sub METAOP_REDUCE(\$op, :$triangle) {
my $x :=
sub (*@values) {
if $triangle {
my $x := $triangle ??
(sub (*@values) {
return () unless @values.gimme(1);
GATHER({
my $result := @values.shift;
take $result;
take ($result := $op($result, @values.shift))
while @values.gimme(1);
}, :infinite(@values.infinite))
}
else {
}) !!
(sub (*@values) {
return $op() unless @values.gimme(1);
my $result := @values.shift;
return $op($result) unless @values.gimme(1);
$result := $op($result, @values.shift)
while @values.gimme(1);
$result;
}
}
})
}

sub METAOP_REDUCE_RIGHT(\$op, :$triangle) {
Expand Down

0 comments on commit 0f582d8

Please sign in to comment.