Talk:Anonymous function

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computer science (Rated Start-class)
WikiProject icon This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Start-Class article Start  This article has been rated as Start-Class on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.
 
edit·history·watch·refresh Stock post message.svg To-do list for Anonymous function:
  • Make difference between anonymous functions, higher-order functions and closures superduper clear. An anonymous function is what you often pass as an argument to a higher-order function. Well actually, a closure is what you often pass to a higher-order functions. A closure relates to an (anonymous) function as an object to an (anonymous) class.

Lambda in Java[edit]

Java 8 now supports lambdas, so it should be added to this page. — Preceding unsigned comment added by 12.111.88.66 (talk) 05:18, 18 August 2013 (UTC)

Typical usage summary?[edit]

The article might be more comprehensible if it introduced anonymous functions as *parameters* to named function. — Preceding unsigned comment added by 68.50.114.83 (talk) 22:11, 21 November 2011 (UTC)

Full vs. Some support?[edit]

I wasn't sure what the difference was between "Full" and "Some" support. Added Perl as having "Full" support, since it can do the five examples: sort, map, grep, curry, reduce ('reduce' is in List::Util). And, it has fully anonymous functions. Benizi (talk) 00:16, 20 February 2008 (UTC)

Expert tag and merge discussion[edit]

See Talk:First-class_function#Merge_anonymous_function_here. Pcap ping 21:40, 20 August 2009 (UTC)

Section 3.14 Python[edit]

Ha! Unexpected humor! Πthon is section 3.14.

Sorry, I can't help myself. Unimath (talk) 01:49, 25 December 2010 (UTC)

Ubiquitous in languages with first-class functions... such as Haskell?[edit]

This sentence in the introduction struck me as odd:

Anonymous functions are convenient to pass as an argument to a higher-order function and are ubiquitous in languages with first-class functions such as Haskell. [emphasis mine]

Why is Haskell used as an example of a language where anonymous functions are convenient–or better yet—why is there an example language at all? Anonymous functions aren't unique to Haskell are there are other more (historically) notable programming languages that use them. —BiT (talk) 02:20, 22 November 2011 (UTC)

PHP 5![edit]

in newer versions of PHP it is possible to define anonymous functions: PHP-Manual: Anonymous Functions. so please update that paragraph. --Feudiable (talk) 20:51, 5 January 2012 (UTC)

Why not use the same example for all languages?[edit]

Ruby for instance has a completely different example, this makes comparing syntaxes dificuilt. — Preceding unsigned comment added by 116.193.144.2 (talk) 05:08, 8 March 2012 (UTC)

merge from lambda (programming)[edit]

Someone put a merge tag on lambda (programming) back in Oct 2011. Discuss this proposal here.

Yes, merge. Actually, a redicrect may be enough, this page is clearly more complete. linas (talk) 22:15, 8 June 2012 (UTC)
Merge. Lambda just means "this is an anonymous function" anyway. There's really no reason to have anything besides a line on Lambda (disambiguation) that says that in programming it means anonymous function, and then link to that. Dtm1234 (talk) 21:29, 27 June 2012 (UTC)

Advantages?[edit]

The article does not tell me the advantages of this. For example, why is

def divide(x,y):
  return x/y
 
def divisor(d):
  return lambda x: divide(x,d)
 
half = divisor(2)
third = divisor(3)
 
print half(32), third(32)
16 10
 
print half(40), third(40)
20 13

any better than the (IMHO) much more obvious and shorter

def divide(x,y):
  return x/y
 
print divide(32,2), divide(32,3)
16 10
 
print divide(40,2), divide(40,3)
20 13

? Thanks in advance for enlighting me! :) --2003:63:2F67:9600:F9EA:4F10:2F98:DFFE (talk) 08:07, 19 March 2014 (UTC)

Because since you wrote both 40 and 32 two times, you are unnecessarily duplicating data that should be encapsulated. This is obviously not much of a concern in a toy example like that but it starts becoming more pressing when dealing with "complex" structures. Try and review some of your old code with your new knowledge and you'll probably find a lot of examples. — Preceding unsigned comment added by 2A02:1812:908:6100:2E44:FDFF:FE65:9549 (talk) 19:37, 14 April 2014 (UTC)

There are no advantages. As you have noticed, the "plain" form is much more obvious, shorter and, well, plain. As to the answer above, the duplication occurs in both examples and can be avoided by using simple variables. — Preceding unsigned comment added by 93.35.116.238 (talk) 11:33, 5 May 2014 (UTC)

Too python centric?[edit]

Why are all of the examples in the Uses section written in Python? Wouldn't this be better suited to a language that puts functions first such as Haskell? — Preceding unsigned comment added by 2A02:1812:908:6100:2E44:FDFF:FE65:9549 (talk) 19:26, 14 April 2014 (UTC)