Talk:Anonymous function

Latest comment: 1 year ago by AstroFloyd in topic Named anonymous function?

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)Reply

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)Reply

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)Reply

Expert tag and merge discussion

edit

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

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)Reply

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)Reply

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)Reply

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)Reply

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)Reply
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)Reply

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)Reply

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)Reply

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)Reply

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)Reply

edit

Hello fellow Wikipedians,

I have just modified one external link on Anonymous function. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 5 June 2024).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 22:21, 6 July 2017 (UTC)Reply


This seems to be copied from a Python document!!!

edit

No only all the examples are made by Python which is supporting Anonymous functions for expressions only, but also opening statement for Higher order functions and most of the content are about Python. It is better to rewrite this document with a language with first class functions like JavaScript or Scala. I will rewrite and add all the examples in both those languages and make this text less Python centered in two weeks if no reason provided! Genius babak (talk) 18:19, 29 June 2018 (UTC)Reply


Content added to OCaml

edit

I saw that there was only a one line example of an anonymous function so I added a snippet from a course. Wasn't sure how to appropriately cite. — Preceding unsigned comment added by 173.224.163.81 (talk) 14:05, 31 May 2019 (UTC)Reply

Z Shell (zsh)

edit

I have removed Z shell (which had been added by Stephane Chazelas in Special:Diff/800432857) from the list since what is called anonymous function in zsh does not correspond to what is described here, i.e. closures. Anonymous functions in zsh do not intend to be like closures, as clearly explained in the zsh-users mailing-list: "These aren't closures in the sense of anonymous functions in a number of other languages; rather, they're nameless function scopes that are executed as soon as they are defined."

Note that it is possible to implement something that looks like closures in zsh (and other Unix shells) since one can manipulate shell code as strings and evaluate it with the eval builtin, but this is limited and remains very low level due to the need of quoting mechanisms in particular. In zsh, anonymous functions can help (I have given a simple example on Unix & Linux Stack Exchange), but I don't think they are really necessary, the main work being done by string construction and the eval builtin.

Vincent Lefèvre (talk) 11:30, 25 June 2020 (UTC)Reply

Named anonymous function?

edit

The Python example uses an "anonymous" function called foo(!) However, the intro text says "...a function definition that is not bound to an identifier" (i.e. name). I'm confused now (and perhaps so are other readers who come here to learn what an anonymous function is) - do anonymous functions have names or not (or both), or is the Python lambda keyword used for something else than anonymous functions (e.g. local inline function definition) and therefore an unfortunate example here?

AstroFloyd (talk) 07:00, 1 October 2023 (UTC)Reply