Mathematica Programming » Functional Programming

Table / Do

Both Table and Do are only barely functional programming, still generally used procedurally, but they are simple, much more efficient alternatives to For and While loops. All they do is loop over a list or range, with optional localized loop variables:

Compare:

 For[ i = 1, i< 10^6, i++, PrimeQ@i]//
AbsoluteTiming//First
 0.830501`

and

 Do[ PrimeQ@i,{i,10^6}]//
AbsoluteTiming//First
 0.31723`

It’s over 2x faster to use Do here and the result is exactly the same. Moreover, as shown before, Table will automatically accumulate the results of each step, with huge efficiency gains over the equivalent procedural construct:

 results={};
For[ i = 1, i< 2.5*10^4, i++,AppendTo[results, PrimeQ@i]]//
AbsoluteTiming//First
 3.008666`

Table[PrimeQ@i,{i,2.5*10^4}]//
AbsoluteTiming//First
 0.008375`