NestWhile

NestWhile[f, expr, test]
starts with expr, then repeatedly applies f until applying test to the result no longer yields True.

NestWhile[f, expr, test, m]
supplies the most recent m results as arguments for test at each step.

NestWhile[f, expr, test, All]
supplies all results so far as arguments for test at each step.

NestWhile[f, expr, test, m, max]
applies f at most max times.

NestWhile[f, expr, test, m, max, n]
applies f an extra n times.

NestWhile[f, expr, test, m, max, -n]
returns the result found when f had been applied n fewer times.

DetailsDetails

  • NestWhile[f, expr, test] returns the first expression to which applying test does not yield True.
  • If does not yield True, NestWhile[f, expr, test] returns expr. »
  • NestWhile[f, expr, test, m] at each step evaluates . It does not put the results in a list. »
  • The are given in the order they are generated, with the most recent coming last.
  • NestWhile[f, expr, test, m] does not start applying test until at least m results have been generated.
  • NestWhile[f, expr, test, {mmin, m}] does not start applying test until at least results have been generated. At each step it then supplies as arguments to test as many recent results as possible, up to a maximum of m. »
  • NestWhile[f, expr, test, m] is equivalent to NestWhile[f, expr, test, {m, m}]. »
  • NestWhile[f, expr, UnsameQ, 2] is equivalent to FixedPoint[f, expr]. »
  • NestWhile[f, expr, test, All] is equivalent to NestWhile[f, expr, test, {1, Infinity}]. »
  • NestWhile[f, expr, UnsameQ, All] goes on applying f until the same result first appears more than once.
  • NestWhile[f, expr, test, m, max, n] applies f an additional n times after test fails, or max applications have already been performed. »
  • NestWhile[f, expr, test, m, max, -n] is equivalent to Part[NestWhileList[f, expr, test, m, max], -n-1]. »
  • NestWhile[f, expr, test, m, Infinity, -1] returns, if possible, the last expression in the sequence expr, , , ... for which test yields True.
New in 4
New to Mathematica? Find your learning path »
Have a question? Ask support »