Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

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



  • Prev by Date: Re: What is best trick to eliminate flicker in simulation animation?
  • Next by Date: Re: Sending an interrupt to the frontend?
  • Previous by thread: Re: Solving Third Order differential equation using Mathematica.
  • Next by thread: Re: can one make local symbol in a pure function?