Re: can one make local symbol in a pure function?
- To: mathgroup at smc.vnet.net
- Subject: [mg127380] Re: can one make local symbol in a pure function?
- From: "djmpark" <djmpark at comcast.net>
- Date: Fri, 20 Jul 2012 23:39:39 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20420628.43496.1342771032206.JavaMail.root@m06>
Make the body of the Function a Module or With statement? David Park djmpark at comcast.net http://home.comcast.net/~djmpark/index.html From: Nasser M. Abbasi [mailto: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