2 декабря 2015 г., 15:28 пользователь Гришаев Анатолий <[email protected]>
написал:

> А как бегущую сумму считать без map? for тут явно избыточен.
>

Кое-где для этого используют ф-цию scanl (
https://mail.haskell.org/pipermail/haskell-cafe/2004-July/006361.html)

вот так как-то:

sub scanl {    my($f, $y, @lst) = @_;    @lst ? ($y, scanl($f,
$f->($y, shift(@lst)), @lst)) : ($y);}sub scanl1(&@) {    my($f, @lst)
= @_;    @lst ? scanl($f, shift(@lst), @lst) : ();}my @seq =
(1..10);my @rt = scanl1 {    $_[0] + $_[1]} @seq;use DDP; p @rt;
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить