MathGroup Archive 2013

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Function with optional default argument cannot cache


Interesting.  Looks like you'd need to cover the default value case 
manually:

    f[x_, y_] := f[x, y] = {Pause[1], x, y}
    f[x_] := f[x, 2]

But arguably it should not be necessary.

vQ

On 05/01/2013 09:37 AM, Dan O'Brien wrote:
> Is there a discussion somewhere on why this is?
>
> In[1]:= $Version
> f[x_, y_: 2] := f[x, y] = {Pause[1], x, y}
> f[1, 2] // AbsoluteTiming
> f[1, 2] // AbsoluteTiming
> f[1] // AbsoluteTiming
> f[1] // AbsoluteTiming
>
> Out[1]= "9.0 for Microsoft Windows (64-bit) (January 25, 2013)"
>
> Out[3]= {1.014002, {Null, 1, 2}}
>
> Out[4]= {0., {Null, 1, 2}}
>
> Out[5]= {1.029602, {Null, 1, 2}}
>
> Out[6]= {1.014002, {Null, 1, 2}}
>




  • Prev by Date: Help with RootLocusPlot
  • Next by Date: Re: Plot with axes exchanged
  • Previous by thread: Function with optional default argument cannot cache results
  • Next by thread: Re: Function with optional default argument cannot cache results