| Subject: | Re: [Haskell-cafe] Re: Why? |
|---|---|
| From: | Gregg Reynolds |
| Date: | Thu, 10 Dec 2009 12:36:58 -0600 |
On Thu, Dec 10, 2009 at 11:16 AM, John D. Earle <JohnDEarle@xxxxxxx> wrote:
Hi John, I'd say algebra is mostly concerned with equalities and substitutions and doesn't much care about functions. The equation for a circle is not a function but that doesn't mean we can't use algebra to manipulate it. Algebras might use the concept of function but they are not necessarily _about_ functions. One could even argue that the lambda calculus isn't "about" functions - it's just a calculus, after all. Haskell goes by the rules of that calculus; whether the expressions involved denote functions is not relevant. The computer is just performs symbol calculus. Generally all formal semantics can be reduced to syntactic calculus as far as I can see. Â
 Except when you're not. IO operations are never functions, for example, so IO expressions never denote functions. FP languages do not (and cannot) eliminate the side effectful nature of such operations; the best they can do is what Haskell does, namely circumscribe them so that they are well-behaved and thus can be properly managed (algebraically). But that doesn't make them functions. So for me at least "algebraic" better describes how Haskell works; what you're working with is expressions and you reason about them algebraically. You can do this reliably not because everything is a function but because non-functions are well-behaved. Â
No argument there. But the expressive power that comes with first-class functions is not what distinguishes Haskell et al. - lots of non-FP languages support them these days.
Sure, but that's only possible because the properties of programs are provable, which is what makes it possible to reliably transform a program into an equivalent but more efficient form. -Gregg _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@xxxxxxxxxxx http://www.haskell.org/mailman/listinfo/haskell-cafe |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [Haskell-cafe] Re: Why?, John D. Earle |
|---|---|
| Next by Date: | Re: [Haskell-cafe] Re: Why?, Ketil Malde |
| Previous by Thread: | [Haskell-cafe] Re: Why?, John D. Earle |
| Next by Thread: | Re: [Haskell-cafe] Why?, Sebastian Sylvan |
| Indexes: | [Date] [Thread] [Top] [All Lists] |