[Haskell-cafe] Re: Doing some things right

Achim Schneider barsoap at web.de
Sat Dec 29 07:14:32 EST 2007

Andrew Coppin <andrewcoppin at btinternet.com> wrote:

> Luke Palmer wrote:
> > OO is orthogonal to functional.  Erlang is pure functional, Lisp is
> > a bastard child...
> >   
> 2. I'm curios as to how you can have a functional OO language. The
> two seem fundamentally incompatible:
By writing an object that takes a parameter in its constructor (eg. Int)
and has a member of type () -> Int, you have a closure, which is a let
binding. Then you most likely have expression nesting, and you're done.

You can, of course, also take a C struct and call the whole thing a
chunk or whatever, but that's beside the point. In Java, you have inner
classes, which make writing in a functional style verbose and ugly,
but quite straight-forward. Heck, you can even use reflection to only
allow non-sideeffect stuff.

Any sufficiently restricted subset of any high-level assembler is an
awkward implementation of your favourite declarative language.

(c) this sig last receiving data processing entity. Inspect headers for
past copyright information. All rights reserved. Unauthorised copying,
hiring, renting, public performance and/or broadcasting of this
signature prohibited.

More information about the Haskell-Cafe mailing list