       Re: Functions with data hidden in them

• To: mathgroup at smc.vnet.net
• Subject: [mg81872] Re: [mg81831] Functions with data hidden in them
• From: DrMajorBob <drmajorbob at bigfoot.com>
• Date: Fri, 5 Oct 2007 04:55:22 -0400 (EDT)
• References: <169091.1191555934591.JavaMail.root@m35>

```Suppose I want a "dot" function that computes dot products of vectors with
some fixed vector. One way to do this is:

Clear[makeDot, dot]
makeDot[v_?VectorQ] := dot[v]
dot[v_?VectorQ][x_?VectorQ] /; Length[v] == Length[x] := v.x

f = makeDot[{1, 1, 2}];
f[{a, b, c}]

a + b + 2 c

If the dimensions don't match, f returns unevaluated:

f[{a, b}]

dot[{1, 1, 2}][{a, b}]

makeDot and dot are analogous to Interpolation and InterpolatingFunction,
respectively.

Bobby

On Thu, 04 Oct 2007 03:29:26 -0500, Neil Stewart
<neil.stewart at warwick.ac.uk> wrote:

> The Interpolation[] function somehow "hides" the data passed to it in the
> InterpolationFunction object that it returns. In the example below, when
> f is evaluated it is using information from the list data, but does
> not
> have the list data passed to it as parameter.
>
> In:= data = {{1, 1}, {2, 2}, {3, 3}}
>
> In:=  f = Interpolation[data]
>
> In:= f
> Out= 1
>
> How can I write my own function that stores data inside itself in the
> same
> way that Interpolation does? I'm aiming to write a functions that take
s a
> number as a parameter and consults a large data set to return a number .
> I'm
> not sure where to start - any ideas very welcome!
>
> Thanks,
> Neil.
>
>
>

--

DrMajorBob at bigfoot.com

```

• Prev by Date: FrameLabel in v6.0
• Next by Date: Re: Manipulate+Plot showing no output
• Previous by thread: Re: Functions with data hidden in them
• Next by thread: Re: Functions with data hidden in them