|WikiProject Computing||(Rated Start-class, Low-importance)|
I think the article page should mention two things:
- that Unlambda had a great impact on a number of esoteric programming languages, and - that Unlambda is _not_ very pure, as a functional programming language.
opinions? --User:22.214.171.124 17:14, 29 Jul 2004
- Please specify your points. What kind of impact on which languages and why is it not pure? You're free to add these straight in to the article yourself too... --ZeroOne 15:52, 6 Oct 2004 (UTC)
care impure. -- Dominus 15:51, 7 Oct 2004 (UTC)
Hey, nice work on rewriting the article, Dominus. :) I don't know any Unlambda myself but I'm willing to learn so this was a huge improvement. Could you check this sentence in the fifth paragraph: "
i represents the version of the identity function that has no such side effectl it is used here as a summy argument". You've obviously got a typo there but I don't know what it is supposed to say. :/ Please also add some headings, the text is now in a rather cumbersome junk. A list of all the commands in Unlambda with short descriptions would be nice at some point. --ZeroOne 15:52, 6 Oct 2004 (UTC)
- Thanks; fixed. --Dominus 15:51, 7 Oct 2004 (UTC)
- It's still not especially good in my opinion. --126.96.36.199 20:13, 16 October 2005 (UTC)
- How unfortunate you have not been granted access to change it for the better, then. -- Dominus 14:52, 17 October 2005 (UTC)
Is there a connection between Unlambda and SKI combinator calculus? --Jesse Ruderman
- Yes. -- Dominus 04:20, 3 January 2006 (UTC)
Is Joy really a "similar language"? It's not esoteric, perhaps not really even experimental, it has named functions instead of just few primitives, it's stack-based, and while it does have combinators I fail to see any other interesting similarities. 188.8.131.52 (talk) 10:51, 23 October 2008 (UTC)
- The original language listed there was Lazy K. "Joy" seems to be a typo for Jot (as in Iota and Jot). The Lazy K language is much more similar to Unlambda, but as for non-esoteric languages, Scheme would be a good example. The Call-with-current-continuation function originated in Scheme, and it's easy to implement the SKI combinators in Scheme. In fact, Scheme is what the Unlambda interpreter was originally written in. 184.108.40.206 (talk) 20:58, 13 September 2010 (UTC)
Pure or impure?
"The notation .x denotes a function which takes one argument and returns it unchanged, printing the single character x as a side effect when it is invoked." Looks impure to me. Actually, I'm going to see if this language is mentioned in any WP:SECONDARY sources, and in what way. Pcap ping 06:48, 30 December 2009 (UTC)
It's rather difficult to verify much of this article, as it seems almost entirely based on a Japanese book, which isn't freely available online. It's certainly a valid source, and there's no reason to doubt the article follows it faithfully, but please post any other reliable sources if you find any.
Currently cited sources:
- Chu-Carroll, Mark C. (2006-08-11). "Friday Pathological Programming: Unlambda, or Programming Without Variables". Good Math, Bad Math (blog). ScienceBlogs. Italic or bold markup not allowed in:
- 原 悠 (Yutaka Hara) (2008). Rubyで作る奇妙なプログラミング言語. Tokyo: 毎日コミュニケーションズ (Mainichi Communications). p. 205–214. ISBN 978-4-8399-2784-4.</ref>
- Felix-Hernandez Campos (1 April 2002), Lecture 28: More on functional programming, University of North Carolina COMP144
While most blogs wouldn't count as a reliable source, Chu-Carroll's is a published author in the field, and I think meets Wikipedia's "expert" requirements for self-published sources.
I think Campos' lecture notes should not be relied upon as a reliable source; Campos was a grad student, and the April 1 date suggests it may have been an April Fool's joke (e.g., "it is powerful", "it is the ideal language for abstraction elimination"; this could be serious, or a spoof of overstated language claims). I don't see any sentence in this article that is supported by the lecture notes, so it could probably be removed without an effect on the article, though perhaps it was the basis for parts of sentences (e.g., that it is Turing complete, or that it allows abstraction elimination).
原 悠's book was republished this year; Google preview doesn't show the text, but does show the table of contents, which list the 12-page section on Unlambda as a subsection of "Esoteric Languages":
- 原 悠 (Yutaka Hara) (2014). Rubyで作る奇妙なプログラミング言語: ヘンな言語のつくりかた (Esoteric Language Programming in Ruby). マイナビ (Mynavi Advanced Library). p. 5,205-213. ISBN 978-4-8399-4953-2. (Later publication of already-cited book; Google preview is limited to table of contents, which shows
Other reliable sources I found that mention it had very minor coverage:
- Trzęsicki, Kazimierz (2010). "Philosophy of Mathematics and Computer Science" (PDF). Studies in Logic, Grammar and Rhetoric. 22 (35): 47–80.
Combinatory logic is used in some esoteric languages including Unlambda. A functional language based on the combinatory logic is a language without variables or lambda expressions. Unlambda is of some theoretical interest. Lambda calculus and combinatory logic are now studied as idealized programming languages." Footnote: " For the official Unlambda distribution, including several (other) implementations and documentation of the language, see the Unlambda Homepage by David Madore: http://www.madore.org/~david/programs/unlambda/.
- Obermeyer, Fritz H. (2009). Automated Equational Reasoning in Nondeterministic Lambda-calculi Modulo Theories H*. ProQuest. p. 159. ISBN 978-1-109-21432-1.
Although this is theoretically banal, it has major practical significance in allowing people to read combinators (and foiling the obfuscatory attempts of languages like unlambda, and Iota).
- Quaderns d'arquitectura i urbanisme (in French/English). Collegi d'Arquitectes de Catalunya. pp. 66, 69.
Indépendamment d'Imbécil, il convient de remarquer aussi dans cette ligne de pensée des initiatives telles que Malbolge, Unlambda, Whitespace, Rrainfuck ou Intercal, qui sont tous des langages de programmation conçus expressément pour être (presque) impossibles à utiliser. ... Apart from 'Imbécil', other programs follow the same line of thought, such as Malbolge, Unlambda, Whitespace, Brainfuck and Intercal, all programming languages designed specially to be (almost) impossible to use.CS1 maint: unrecognized language (link)
- Marco Padula; Amanda Reggiori (2006). Fondamenti di informatica per la progettazione multimediale. Dai linguaggi formali all'inclusione digitale. FrancoAngeli. p. 74. ISBN 978-88-464-7893-1.
U Ultra 32, Unicon, UnLambda, UnrealScript(It is just included among a large list of programming languages, in a line for languages beginning with a U).
- Bhattacharyya, Malay (2012). "Simulating a Turing machine". XRDS: Crossroads, The ACM Magazine for Students. 18 (3): 43. doi:10.1145/2090276.2090290. ISSN 1528-4972.
...those who are interested in the implementation of TM in different programming languages other than C [like C++, Haskell, Java, OCaml, Ruby, Scheme, and Unlambda] can delve...
- Piscuc, Paul (2010). "Integration of open source tools in Virtual Interpreter/Compiler for C and C++" (PDF). Open Source Science Journal. 2 (1).
The application supports forty programming languages: Ada, ... Unlambda, ...