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
