MathGroup Archive 2010

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

Search the Archive

Re: Re: What does & mean?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg107263] Re: [mg107229] Re: What does & mean?
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Sun, 7 Feb 2010 06:12:56 -0500 (EST)
  • References: <201002041126.GAA29847@smc.vnet.net> <hkgks4$6p9$1@smc.vnet.net>
  • Reply-to: drmajorbob at yahoo.com

> f[x_]:=Hello[x]
> g=Hello[#]&
> f[1,2,3]  returns Hello[1]
> g[1,2,3]  returns g[1,2,3]

No...

f[1,2,3] returns f[1,2,3]
g[1,2,3] returns Hello[1]

But, if we define:

Clear[f, g]
f[x___] := Hello[x]
g = Hello[##] &;

...now we get the same results from both, for any arguments:

f[1, 2, 3]

Hello[1, 2, 3]


g[1, 2, 3]

Hello[1, 2, 3]


g == f

Hello[##1] & == f

Bobby

On Sat, 06 Feb 2010 02:23:32 -0600, Richard Fateman  
<fateman at cs.berkeley.edu> wrote:

> Unfortunately, Leonid's explanation is wrong, and while some of
> the discussion is correct and may clarify the meaning of "&",
> some of it is slightly and more-than-slightly wrong.
>
> Leonid's confusion relates to the pseudo-definition of a "function" by
> pattern matching using
>
> fn[arg_]:= .......
>
> and the definition of a true function by
>
> fn= Function[{arg}], ......]   or the brief but obscure ...#..&  
> notation...
> fn = ....#.... &
>
> There is a widely held but technically bogus equivalence in the minds
> of Mathematica users, so Leonid's not alone..
>
> In particular, there is no pattern matching going on in the fn= ...
> case, and the SetAttribute[fn, HoldAll] has no effect whatsoever.
>
> (aside: Programming with "pure functions" in Mathematica follows from
> its heritage in Lisp, where Function[{x,y},x+y]    or #1+#2& more
> briefly, would be written as (lambda(x y)(+ x y)).  Further use of pure
> functions can be viewed in the literature on Lisp. )
>
> To see that the two forms are different most simply, try
>
> f[x_]:=Hello[x]
> g=Hello[#]&
>
> f[1] is the same as g[1], namely Hello[1]   but
>
> f[1,2,3]  returns Hello[1]
> g[1,2,3]  returns g[1,2,3]
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: A New Scientist article verified with Mathematica
  • Next by Date: Re: Re: Follow up to mg106646 - Selecting a range of
  • Previous by thread: Re: Re: Re: What does & mean?
  • Next by thread: Re: Re: What does & mean?