Content deleted Content added
→Literature survey and conclusion: new section |
m Maintain {{WPBS}} and vital articles: 1 WikiProject template. Create {{WPBS}}. Keep majority rating "C" in {{WPBS}}. Remove 1 same rating as {{WPBS}} in {{WikiProject Computer science}}. Tag: |
||
(8 intermediate revisions by 5 users not shown) | |||
Line 1:
{{WikiProject banner shell|class=C|
{{WikiProject Computer science|importance=low}}
}}
==Cleanup==
Line 45 ⟶ 48:
Besides the fact that [[anonymous function]] is not a well-defined concept, the construction given in this article uses names for functions; so how is this recursion anonymous?
: '''Update''': Not well-defined in the context of lambda calculus and mathematics, see [[Talk:Fixed_point_combinator#.22Fixed_point_combinators_allow_the_definition_of_anonymous_recursive_functions.22|this rant]]; it is fairly well defined in programming, but this article tried to be too far removed from that.
This article appears to be the product of somebody with a poor understanding of [[lambda calculus]], where functions are indeed anonymous, in that we don't ''need'' to give them names, you can just write well formed expressions in the calculus. But then this article is nothing more than an application of some fix-point combinator; whether it's Y or not, it doesn't really matter, because [[Fixed_point_combinator#Other_fixed_point_combinators|there's an infinity of fix-point combinators]]. [[User:Pohta ce-am pohtit|Pcap]] [[User_talk:Pohta ce-am pohtit|<small>ping</small>]] 01:42, 21 August 2009 (UTC)
Line 54 ⟶ 58:
== Literature survey and conclusion ==
This notion is virtually unheard of in print, but it does appear in two ''very recent'' C# books [http://books.google.com/books?q=%22anonymous+recursion%22&btnG=Search+Books], as well as some [[MSDN]] blogs, e.g. [http://blogs.msdn.com/wesdyer/archive/2007/02/02/anonymous-recursion-in-c.aspx]. But note how the author of that blog concludes that he simply rediscovered the Y combinator! So, this is worth no more than a little mention in the [[fixed point combinator]] article. [[User:Pohta ce-am pohtit|Pcap]] [[User_talk:Pohta ce-am pohtit|<small>ping</small>]] 18:03, 21 August 2009 (UTC)
== Expand to full article ==
This article was previously a redirect (from merge) to [[fixed-point combinator]]. However, that is a very technical article with largely different subject, and in that context “anonymous recursion” is at best an occasional term, at worst an abuse of language.
However, anonymous recursion is a legitimate distinct topic – calling a function without using its name – and is possible without the technical machinery of a fixed-point combinator, simply by exposing the current context to programs. This is notably used in JavaScript and Perl, at least.
I’ve accordingly expanded this page into a proper article – hope it looks good, and please improve it!
:—Nils von Barth ([[User:Nbarth|nbarth]]) ([[User talk:Nbarth|talk]]) 06:02, 27 April 2013 (UTC)
== Simpler solution ==
I came up with a simpler lambda calculus solution for factorial. All I did was take the anonymous recursion version, and replace "lambda a, b" with "lambda a: lambda b:", and "(a, b)" with "(a)(b)".
<syntaxhighlight lang=python>
(lambda f: lambda x: f(f)(x)) \
(lambda f: lambda x: 1 if x == 0 else x * f(f)(x-1))
</syntaxhighlight>
But, this is original research I guess, so I won't put it on the page. Also the existing explanation might help people trying to understand the Y combinator. <small class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/15.203.233.79|15.203.233.79]] ([[User talk:15.203.233.79|talk]]) 22:19, 27 April 2015 (UTC)</small><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
|