User talk:Fuchsias
From Wikipedia, the free encyclopedia
Welcome!
Hello, Fuchsias, and welcome to Wikipedia! Thank you for your contributions. I hope you like the place and decide to stay. Here are some pages that you might find helpful:
- The five pillars of Wikipedia
- How to edit a page
- Help pages
- Tutorial
- How to write a great article
- Manual of Style
I hope you enjoy editing here and being a Wikipedian! Please sign your name on talk pages using four tildes (~~~~); this will automatically produce your name and the date. If you need help, check out Wikipedia:Questions, ask me on my talk page, or place {{helpme}}
on your talk page and someone will show up shortly to answer your questions. Again, welcome! -- JHunterJ 23:52, 29 July 2006 (UTC)
Contents |
[edit] Eiffel
Hello Fuchsias,
The study of the lambda calculus is a large enough field on its own as to make the link to Eiffel rather tenuous. If you do decide to leave a link, then quick references other languages in this regard would be welcome too, in order to maintain a neutral PoV.
Cheers, --Liyang 19:01, 31 July 2006 (UTC)
You said:
The lambda calculus article has extensive sections on other languages on how to emulate lambda expressions
Please point out one or two such paragraphs. Lambda calculus mentions functional programming languages and cites Haskell, ML, Lisp as being the prominent ones. No examples in any of these languages.
You also said:
but nothing on Eiffel that has full-fledged support for the mechanism.
Eiffel's ‘mechanism’ for supporting closures / anonymous functions (or objects in Eiffel's case) is (in some cases not) as fully-fledged as that of Smalltalk, Ruby, Python, Perl, Scala, JavaScript or a dozen other general purpose not-primarily-functional programming languages; even C++ has support for this ‘mechanism’ via Boost. And let's not forget that Java has anonymous objects which can be used to achieve the same effect. If you mention one, you should at least mention the more widely-used ones from the rest too.
Having said this, the articles are mainly concerned with the lambda calculus formalism, as part of mathematical logic, theories of computation and type theory. Programming examples do not belong there, there are much more appropriate venues. Look: here's a section I found on Eiffel's agents.
Adding extra information to Wikipedia articles is generally appreciated, but please make sure it's being added to the correct page, under the right context.
Thank you, --Liyang 03:29, 1 August 2006 (UTC)
You said:
But I still think it is important to mention that lambda-calculus mechanisms are not limited to Lisp and functional languages.
Please read carefully what I wrote above, in particular the penultimate paragraph.
You do not mean ‘lambda-calculus mechanisms’ (there is no such concept.) You mean anonymous function definitions, closures (related to continuations) and first-class functions (various hacks include Java's inner classes).
I acknowledge your expertise with Eiffel, but trust me, I am not at all unfamiliar with what I'm talking about either.
Thanks, --Liyang 04:16, 1 August 2006 (UTC)
You said:
Did I imply that I didn't value your competence?
No, I was asserting that I'm familiar with the lambda calculus as well a range of programming languages: imperative, OO, functional and logical.
You said:
(Lambda calculus and programming languages) should be as good as the math part, in particular it should be well-balanced and not limited to pushing the functional language POV.
It's not pushing a functional PoV. The section was simply to point out that function languages are, to a large extent, extensions of the lambda calculus.
As an aside, let's have a look at what you've written:
Numerous imperative languages, e.g. Pascal, have long supported passing subprograms as arguments to other subprograms. In C and C++ the equivalent result is obtained by passing pointers to the code of functions (subprograms).
What you have described is certainly not equivalent. A function pointer/reference does not a closure make. Please fix this after you have read and understood the article on closures.
New mechanisms in imperative object-oriented languages have, however, started to provide the direct equivalent of lambda expressions of arbitrary order; this is the case "agents" in Eiffel and "delegates" in C#.
These mechanisms are not new. Unless you regard Smalltalk as new. Nor are such mechanisms directly equivalent. Saying that agent (x: REAL): REAL do Result := x * x end represents (λx. x*x) is firstly factually untrue: you're enforcing a particular evaluation order, namely passing the argument by value. Secondly there is no * operator in the lambda calculus.
What you are adding is – while appreciated – outside the scope of the article.
Wikipedia guidelines recommend that I simply change anything non-factual without discussion. I'm trying to do you a favour so you can fix the errors and place the information somewhere appropriate. I'm tired of this. If you still insist on tenuous additions which have more appropriate homes, please take this discussion to the talk page. –Liyang 19:03, 1 August 2006 (UTC)
[edit] "Please read the design by contract papers"
That was unnecessary. I agree, contracts affect inheritance and exceptions, not the other way around. I made a mistake. There's no need to be rude about it. --P3d0 17:49, 15 August 2006 (UTC)
- Sorry, rudeness was not intended, but you are right it appeared so. Please accept my apologies and treat this as a the equivalent of a verbal off-the-cuff comment, nothing more serious.
-
- Thanks, I appreciate that. This is an unforgiving medium sometimes. --P3d0 21:15, 15 August 2006 (UTC)
[edit] Eiffel "agents" and FP
I'm not against mentioning Eiffel along with other "mostly non-FP" languages that allow FP constructs, in the Functional programming article. But I'm afraid I don't know enough Eiffel to understand what the thing about "agents" really means. Linking to the Eiffel article, I am treated to a completely empty section that is apparently stubbed about where such a discussion might occur. Since you seem to be familiar with Eiffel, would you write that section ASAP, so that readers can figure out what the connection is meant to be? LotLE×talk 03:11, 20 August 2006 (UTC)
- It looks like this was done just now -- the page is under construction.
[edit] Object-Oriented Software Construction
I have added a "{{prod}}" template to the article Object-Oriented Software Construction, suggesting that it be deleted according to the proposed deletion process. All contributions are appreciated, but I don't believe it satisfies Wikipedia's criteria for inclusion, and I've explained why in the deletion notice (see also "What Wikipedia is not" and Wikipedia's deletion policy). Please either work to improve the article if the topic is worthy of inclusion in Wikipedia, or, if you disagree with the notice, discuss the issues at its talk page. Removing the deletion notice will prevent deletion through the proposed deletion process, but the article may still be sent to Articles for Deletion, where it may be deleted if consensus to delete is reached, or if it matches any of the speedy deletion criteria. --StalkerAT 10:03, 10 January 2007 (UTC)