MathGroup Archive 2008

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

Search the Archive

Re: Evaluate part of rhs of RuleDelayed

  • To: mathgroup at smc.vnet.net
  • Subject: [mg91086] Re: [mg91081] Evaluate part of rhs of RuleDelayed
  • From: Carl Woll <carlw at wolfram.com>
  • Date: Wed, 6 Aug 2008 05:02:30 -0400 (EDT)
  • References: <200808051028.GAA14053@smc.vnet.net>

Eugene Kirpichov wrote:

>I am writing a lazy recursive function (actually, a tree of UI widgets
>that is too large to be constructed at once).
>Consider, for example, the following code:
>
>SomeComplexFunction[a_] := Module[{x},
>  x = a*a;
>  {value :> SomeComplexFunction[x + a]}]
>
>The value of SomeComplexFunction[5] is {value :>
>SomeComplexFunction[x$7418 + 5]} and seemingly can'd be used for
>anything useful.
>
>Question:
>How should I fix the code of SomeComplexFunction so that the value of
>SomeComplexFunction[5] be {value :> SomeComplexFunction[30]} ?
>
>Unfortunately, this one
>
>SomeComplexFunction[a_] := Module[{x},
>  x = a*a;
>  {value :> SomeComplexFunction[Evaluate[x + a]]}]
>
>yields {value :> SomeComplexFunction[Evaluate[x$7421 + 5]]}
>
>  
>
You can try either of the following:

SomeComplexFunction[a_] := With[{x = a*a}, {value :> 
SomeComplexFunction[x + a]}]

SomeComplexFunction2[a_] := {value :> SomeComplexFunction2[# + a]} &[a a]

Carl Woll
Wolfram Research


  • Prev by Date: Re: Evaluate part of rhs of RuleDelayed
  • Next by Date: Use of RuleDelayed in PaneSelector
  • Previous by thread: Evaluate part of rhs of RuleDelayed
  • Next by thread: Re: Evaluate part of rhs of RuleDelayed