Иллюстрированный самоучитель по Mathematica

Суперпозиция функций



При функциональном программировании часто используется суперпозиция функций. Для ее реализации используются следующие функции:

  • 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]] ]}

 



Содержание раздела