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.
Introduced in 1999
(4.0)