Re: Evaluate part of rhs of RuleDelayed
- To: mathgroup at smc.vnet.net
- Subject: [mg91103] Re: Evaluate part of rhs of RuleDelayed
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 6 Aug 2008 05:05:44 -0400 (EDT)
- References: <g79a05$dnl$1@smc.vnet.net>
Hi,
SomeComplexFunction[a_] := Module[{x, f}, x = a*a;
{RuleDelayed @@ {value, f[x + a]}} /. f -> SomeComplexFunction]
??
Regards
Jens
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]]}
>