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?