Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2013

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

Search the Archive

Re: Function with optional default argument cannot cache results

  • To: mathgroup at smc.vnet.net
  • Subject: [mg130675] Re: Function with optional default argument cannot cache results
  • From: Roland Franzius <roland.franzius at uos.de>
  • Date: Wed, 1 May 2013 21:39:10 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <klqgl9$na4$1@smc.vnet.net>

Am 01.05.2013 09:36, schrieb Dan O'Brien:
> 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}}
>


?f

Global`f

f[1,2]={Null,1,2}

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

The value of expression input "f[1]" will not be compiled.

In contrast, "f[1,2]" has been set to it's value by the Set (=) 
statement on the right side of the definition (:=) during the first 
execution.

-- 

Roland Franzius



  • Prev by Date: Re: NMF in Mathematica 8
  • Next by Date: Re: Intersection points of two contour plots
  • Previous by thread: Re: Function with optional default argument cannot cache results
  • Next by thread: Time, location, and activity plotting