> While we are here, can reduce itself generate an average? I.e. something
> cuter than:
>
> $avg = reduce { $_[0] + $_[1] } @numbers / @numbers;
Of course.
This is about as cute as it gets:
$ave = ${reduce( bless( \(((ref(^x)?$^x*ref(^x):^x)+^y)/((ref(^x)||1)+1)),
(ref($^x)||1)+1),
@numbers)
} ;
And this non-curried version of the same *actually runs* under 5.00502:
use builtin 'reduce';
$ave = ${reduce(sub{bless \(((ref($_[0])?${$_[0]}*ref($_[0]):$_[0])+$_[1])/
((ref($_[0])||1)+1)),
(ref($_[0])||1)+1
},
@numbers)
} ;
Damian