Evaluate part of rhs of RuleDelayed

*To*: mathgroup at smc.vnet.net*Subject*: [mg91081] Evaluate part of rhs of RuleDelayed*From*: "Eugene Kirpichov" <ekirpichov at gmail.com>*Date*: Tue, 5 Aug 2008 06:28:03 -0400 (EDT)

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]]} -- Eugene Kirpichov Web IR developer, Yandex

**Follow-Ups**:**Re: Evaluate part of rhs of RuleDelayed***From:*Andrzej Kozlowski <akoz@mimuw.edu.pl>

**Re: Evaluate part of rhs of RuleDelayed***From:*Carl Woll <carlw@wolfram.com>