Re: the necessity of Lisp's Objects?
- From: Jon Harrop <usenet@xxxxxxxxxxxxxx>
- Date: Sat, 26 Jan 2008 02:27:47 +0000
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
.
- References:
- Re: the necessity of Lisp's Objects?
- From: Joost Diepenmaat
- Re: the necessity of Lisp's Objects?
- From: Jon Harrop
- Re: the necessity of Lisp's Objects?
- From: Joost Diepenmaat
- Re: the necessity of Lisp's Objects?
- Prev by Date: Re: Lisp pattern matching libraries & difference between unification and pattern matching
- Next by Date: Re: Dumb question about CL packages in SBCL
- Previous by thread: Re: the necessity of Lisp's Objects?
- Next by thread: Re: the necessity of Lisp's Objects?
- Index(es):
Relevant Pages
|