Re: Convert list into function
- To: mathgroup at smc.vnet.net
- Subject: [mg41534] Re: [mg41523] Convert list into function
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Mon, 26 May 2003 05:46:15 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Actually, there are lots of ways to do this. On reason is that the
concept of a "function" in Mathematica is very flexible. In one sense a
function is either a single transformation rule or a set of
transformation rules attached as DownValues to some symbol. With this
meaning of a "function" you could use:
L = {1, 2, 3, 4};
f[i_]:=L[[i]]
Now you have just one rule:
DownValues[f]
{HoldPattern[f[i_]] :> L[[i]]}
Alternatively:
Clear[f]
Scan[(f[#1] = #1) & , L]
Now you have a separate rule for each argument:
DownValues[f]
{HoldPattern[f[1]] :> 1, HoldPattern[f[2]] :> 2,
HoldPattern[f[3]] :> 3, HoldPattern[f[4]] :> 4}
Matheamtica also has another concept of a function (which also has
several variants), so called "pure functions":
Clear[f]
f=L[[#]]&;
(Now f has no DownValues at all, only an OwnValue).
Of course in all cases f[i] will return i for i=1,2,3,4.
Andrzej Kozlowski
Yokohama, Japan
http://www.mimuw.edu.pl/~akoz/
http://platon.c.u-tokyo.ac.jp/andrzej/
On Saturday, May 24, 2003, at 02:05 pm, rbhatnagar wrote:
> Hi,
>
> A simple question: What is the correct way of converting a list into a
> function?
>
> For instance, lets say I have some list
> L = {1, 2, 3, 4}
>
> and I want a function such that FuncL[1] would return 1, FuncL[2] would
> return 2 and so on. So what is the syntax for FuncL?
>
> I need the function for some further manipulation in a situation in
> which
> simply using L[[1]] would not be appropriate.
>
> Thanks,
> R. Bhatnagar
>
>
>
>
>