Re: the necessity of Lisp's Objects?



Joost Diepenmaat wrote:
Jon Harrop <usenet@xxxxxxxxxxxxxx> writes:
Joost Diepenmaat wrote:
General comment: common lisp is a pretty high level language...

You might also like to look at OCaml, Haskell and F#.

I forgot to ask: which one would you recommend I'd take a look at first,
and why?

Depends what you're after and what platform you're using. Haskell doesn't
have great support on any platform but it is arguably a more mind expanding
toy. OCaml and F# have bigger user bases and industrial-strength
implementations. OCaml is much better on Linux and Mac OS X (very high
performance, particularly for numerics, lots of high quality libraries
etc.) and F# is great on Windows with Visual Studio. Both have much better
development environments and tools than Haskell.

They also all provide features not found in the others. OCaml provides
polymorphic variants and structurally-subtyped OOP, which close the gap
between static and dynamic typing. Haskell provides laziness with
strictness annotations, which makes it possible to write in a completely
declarative style but brings its own problems. F# provides active patterns
and asynchronous workflows, which close the gap between FP <-> OOP and
provide Erlang-style concurrency, respectively.

The only thing I think I know about any of those is that Haskell is
apparently "purely functional"

Yes. OCaml and F# are impure like Lisp so you can use mutation whenever you
need to but they encourage immutability and provide lots of immutable data
structures in their standard libraries.

and I seem to recall it does some kind of pattern matching.

Yes. Pattern matching is a hugely beneficial feature found in all of these
languages. Think: destructuring-bind & cond on steroids and no more
car/cdr...

Oh, and there's a preliminary Perl 6 implementation
written in Haskell, which made my head hurt when I took a look at it
about 2 years ago.

You might enjoy some of our publications on OCaml:

http://www.ffconsultancy.com/products/ocaml_for_scientists/chapter1.html
http://www.ffconsultancy.com/products/ocaml_journal/free/introduction.html
http://www.ffconsultancy.com/ocaml/
http://www.ffconsultancy.com/ocaml/benefits/

and F#:

http://www.ffconsultancy.com/products/fsharp_journal/free/introduction.html
http://www.ffconsultancy.com/dotnet/fsharp/

I've also collated information about the current use of these (and other)
functional languages:

http://ocamlnews.blogspot.com/2007/12/top-10-most-popular-ocaml-programs.html
http://flyingfrogblog.blogspot.com/2007/11/most-popular-functional-languages-on.html

Like Erlang, OCaml has seen tremendous uptake in industry over the past four
years which is why Microsoft are now productizing F# as their own variant
for their own platform. Consequently, F# is set to become one of the most
successful functional programming languages in history.

--
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?u
.



Relevant Pages

  • Re: Haskell bashing (was Re: F# vs OCaml vs Python vs Haskell: hash table performance)
    ... probably just a matter of personal preference, but Haskell strings are ... The sets of problems that type classes and functors solve well are ... OCaml now... ...
    (comp.lang.functional)
  • Re: SeaFunc meets Oct. 18
    ... >> Standard ML, OCaml, Haskell, and Clean are examples of FP languages. ...
    (comp.lang.lisp)
  • Re: Verbose functional languages?
    ... means adding all of the obvious things that OCaml should have (a ... Haskell community has a very different attitude, ... things stricter than the compiler already guesses. ... Haskell has printf, but the format string is not used in type checking (it ...
    (comp.lang.functional)
  • Re: Haskell: Kicking off the process of defining the next Haskellstandard.
    ... >> Haskell' will be a conservative refinement of Haskell 98. ... languages that aspire to be useful rather than merely elegant. ... to extend C with Haskell. ... either OCaml or C and extend it with the other.) ...
    (comp.lang.functional)
  • Re: Verbose functional languages?
    ... Never heard of that one from Haskell users. ... you just write C-like OCaml with a couple of tricks. ... No REPL for Haskell, ... Haskell has printf, but the format string is not used in type checking ...
    (comp.lang.functional)