       Re: Controlled evaluation of functions

• To: mathgroup at smc.vnet.net
• Subject: [mg56796] Re: [mg56763] Controlled evaluation of functions
• From: DrBob <drbob at bigfoot.com>
• Date: Fri, 6 May 2005 03:00:10 -0400 (EDT)
• References: <200505051002.GAA22030@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Clear[f, k]
k[x_]:=x^2
f[1,x_]:=HoldForm@k[x]
f[i_,x_]:=HoldForm@k[i x]
g[x_]=Table[f[i,x],{i,3}]

{k[x],k[2 x],k[3 x]}

{3,0,1}.g[y]
ReleaseHold@%

3 k[y]+k[3 y]
12*y^2

Bobby

On Thu, 5 May 2005 06:02:34 -0400 (EDT), Brett Patterson <muckle.moose at gmail.com> wrote:

> Consider the following behaviour:
>
>   In:= f[i_, x_] := Sin[i x]
>
>   In:= g[x_] = Table[f[i, x], {i, 3}]
>
>   Out= {Sin[x], Sin[2 x], Sin[3 x]}
>
>   In:= {3, 0, 1} . g[y]
>
>   Out= 3 Sin[y] + Sin[3 y]
>
> This is what I want to do, but using my own function instead of Sin.
> However, this is the result:
>
>   In:= k[x_] := x^2           (* This is my alternative to Sin *)
>
>   In:= f[i_, x_] := k[i x]
>
>   In:= g[x_] = Table[f[i, x], {i, 3}]
>
>   Out= {x^2, 4 x^2, 9 x^2}    (* I want {k[x], k[2 x], k[3 x]} *)
>
>   In:= {3, 0, 1} . g[y]
>
>   Out= 12 y^2                 (* I want 3 k[y] + k[3 y] *)
>
> How can I get the function k to behave like Sin, so that it is not
> evaluated?
>
> Note that in my real application, k is a lot more complex and has
> conditions on its arguments, etc.
>
> Thanks!
>
> Brett Patterson
>
>
>
>

--
DrBob at bigfoot.com

```

• Prev by Date: Re: Controlled evaluation of functions
• Next by Date: Re: Controlled evaluation of functions
• Previous by thread: Controlled evaluation of functions
• Next by thread: Re: Controlled evaluation of functions