NestWhile
Usage
• 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.
Notes
• NestWhile[f, expr, test] returns the first expression f[f[ ... f[expr]... ]] to which applying test does not yield True. • If test[expr] does not yield True, NestWhile[f, expr, test] returns expr. • NestWhile[f, expr, test, m] at each step evaluates test[ , , ... , ]. 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, { , 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, f[expr], f[f[expr]], ... for which test yields True. • New in Version 4.
|