       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 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 be {value :> SomeComplexFunction} ?
>
>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