This is documentation for Mathematica 6, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

NestWhileList

NestWhileList[f, expr, test]
generates a list of the results of applying f repeatedly, starting with expr, and continuing until applying test to the result no longer yields True.
NestWhileList[f, expr, test, m]
supplies the most recent m results as arguments for test at each step.
NestWhileList[f, expr, test, All]
supplies all results so far as arguments for test at each step.
NestWhileList[f, expr, test, m, max]
applies f at most max times.
  • The last element of the list returned by NestWhileList[f, expr, test] is always an expression to which applying test does not yield True.
  • NestWhileList[f, expr, test, m] at each step evaluates test[res1, res2, ..., resm]. It does not put the results resi in a list.
  • The resi are given in the order they are generated, with the most recent coming last.
  • NestWhileList[f, expr, test, m] does not start applying test until at least m results have been generated.  »
  • NestWhileList[f, expr, test, {mmin, m}] does not start applying test until at least mmin 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.  »
  • NestWhileList[f, expr, test, m, max, n] applies f an extra n times, appending the results to the list generated. »
  • NestWhileList[f, expr, test, m, max, -n] drops the last n elements from the list generated.  »
Keep dividing by 2 until the result is no longer an even number:
In[1]:=
Click for copyable input
Out[1]=
 
Iterate taking logarithms until the result is no longer positive:
In[1]:=
Click for copyable input
Out[1]=
New in 4