       Re: Transform list of numbers into pure functions using replace rule

• To: mathgroup at smc.vnet.net
• Subject: [mg89480] Re: Transform list of numbers into pure functions using replace rule
• From: Oliver Ruebenkoenig <ruebenko at uni-freiburg.de>
• Date: Tue, 10 Jun 2008 07:13:28 -0400 (EDT)
• References: <g2lb8t\$964\$1@smc.vnet.net>

```Malcolm,

here is a better one:

On Tue, 10 Jun 2008, Mac wrote:

> Hello,
>
> I'm developed a program to invert satellite observations into
> geophysical variables such as forest biomass. One of the input
> parameters are the errors in the observation channels which can be
> either constant or a function. To be consistent the program expects
> all errors to be functions but they can also be constant functions
> e.g. if the error is 4 then the input parameter is "4&".
>
> I've however hit a problem with the replacement rule that allows me to
> transform all input errors into a function. The following works as
> expected in that constants in the list are transformed into virtual
> functions and functions in the list are left alone.
>
> In:= If[NumberQ[#], ToExpression[ToString[#] <> "&"], #] & /@ {1,
>  2, 3 &, f[x]}
>
> Out= {1 &, 2 &, 3 &, f[x]}
>
> However, I cannot find a replacement rule to do the same job. Here is
> one try:
>
> In:= {1, 2, f[x]} /. x_ /; NumberQ -> Hold[x &]
>
> Out= {1, 2, f[x]}

{1, 2, f[x], 3 &} /. x_Function :>   x[] /. x_Integer :> (x &)

{1 &, 2 &, f[x], 3 &}

this one treats the function separately and it only works for expressions
like Function but not for Function[x,y].

I was not able to find a pattern that does the transformation in one
step.

Since

{1, 2, f[x], 3 & } /. x_?NumberQ :> (x &)

matches the function but

NumberQ /@ {1, 2, f[x], 3 & }

{True, True, False, False}

indicates otherwise.

This behavior makes sense in the following scenario:

{2.3, 4, 7/8, a, b, 3 &} /. (x_ /; NumberQ[x]) -> x^2

but is unwanted in your case.

hth,

oliver

>
> Any help would be appreciated.
>
> Mac
>
>
>

Oliver Ruebenkoenig, <ruebenko AT uni-freiburg.de>

```

• Prev by Date: Re: Many problems with 6.0, possibly java
• Next by Date: Re: Re: How to get an optimal simplification?
• Previous by thread: Re: Transform list of numbers into pure functions using replace rule
• Next by thread: Re: Transform list of numbers into pure functions using replace rule