Суперпозиция функций
Суперпозиция функций
При функциональном программировании часто используется суперпозиция функций. Для ее реализации используются следующие функции:
-
Nest [expr, x, n] — n раз применяет выражение (функцию) ехрг к заданному аргументу х,
-
NestList [f, x, n] — возвращает список результатов (п+1)-кратного применения функции f к заданному аргументу х;
-
Fold[f, x, list] — дает последний элемент в FoldList [f, x, list];
-
FoldList [f, x, {a,b,...} ] — возвращает список {x,f [x,a],f [f [x,a],b],...};
-
ComposeList [ { f , f ,...}, x] — генерирует список в форме {х,а[х] ,а[а[х] ],...}.
Примеры, иллюстрирующие действие этих функций, представлены ниже:
Nest[f, x, 5]
f[f[f[f[f[x]]]]]
Nest[Exp[x], x, 5]
Ех[Ех[Ех[Ех[Ех[х]]]]]
NestList[f, x, 3]
{x, f[x], f[f[x]], f[f[f[x]]]}
Fold[f, x, (-1, 2, 3}]
f[f[f[x, 1], 2], 3]
FoldList[f, x, {1, 2, 3}]
{x, f[x, 1], f[f[x, 1], 2], f[f[f{x, 1], 2], 3]}
ComposeList[{Exp, Ln, Sin), x]
{x, Ex, Ln[Ex] , SinlLn[Ex]] ]}
Содержание раздела