can one make local symbol in a pure function?
- To: mathgroup at smc.vnet.net
- Subject: [mg127368] can one make local symbol in a pure function?
- From: "Nasser M. Abbasi" <nma at 12000.org>
- Date: Fri, 20 Jul 2012 03:51:52 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- Reply-to: nma at 12000.org
I was learning a bit about pure functions.
Suppose we have this toy example:
-----------------
Clear[f, x]
f[x_] := Module[{a = 2}, x^a]
lst = {1, 2, 3};
Map[f[#] &, lst]
-------------------
---> {1, 4, 9}
Now I'd like to define the pure function
in-line, using the Function[] syntax, but
at the same time be able to make a local symbol
'a' like I did when using Module. But the
syntax does not allow one to do that. There is
no place to define it:
------------------
lst = {1, 2, 3};
Map[Function[{x}, x^2], lst]
----------------
---> {1, 4, 9}
So if someone wants to make a temporary symbol to use
for temporary calculation inside the pure function, like
'a' in this example, and at the same time not have it be global
symbol, then one must use a Module? I can write
---------------------
lst = {1, 2, 3};
Map[Function[{x}, a=2; x^a], lst]
----------------------
But now 'a' is global, while when using Module it
was local.
Any way to make local symbols in a pure function like
with Module?
thanks,
--Nasser
- Follow-Ups:
- Re: can one make local symbol in a pure function?
- From: Bob Hanlon <hanlonr357@gmail.com>
- Re: can one make local symbol in a pure function?