Просматривая варианты ЕГЭ
Feb. 5th, 2009 09:46 pmИз ЕГЭ по информатике:
Запишите значение переменной b после выполнения фрагмента алгоритма:

Ну понятно, что a=a*2 это iterate (*2), b=b+a это foldr (+), но вот что делать с порядком "инициализация-проверка-удвоение-шаг свертки" не очень понятно, отсюда некрасивый лишний map (*2).
Запишите значение переменной b после выполнения фрагмента алгоритма:

Ну понятно, что a=a*2 это iterate (*2), b=b+a это foldr (+), но вот что делать с порядком "инициализация-проверка-удвоение-шаг свертки" не очень понятно, отсюда некрасивый лишний map (*2).
Prelude> foldr (+) 1 $ map (*2) $ takeWhile (/= 256) $ iterate (*2) 1 511Ох уж эти алгоритмы с состоянием; такая гадость :)