Tracy R Reed wrote:
There are no side-affects which can make your programs non-deterministic
and hard to debug.
Heh. Until you need to interact with the world or handle an exceptional
case.
I have been reading about Lisp, Scheme, Haskell, and Erlang. Note that
Lisp is not a "purely functional" language in that you can also do
imperative programming with it. But the rest are purely functional. Some
day I am going to have to pick one for serious learning.
Go with Common Lisp.
The reason for this is actually pragmatic. With Common Lisp, if you
don't "get" one of the concepts, you can still make progress. With the
others, there are certain core concepts that you *must* "get" in order
to progress.
With Scheme, it's continuations. With Haskell, it's monads. With
Erlang, it's pure message passing.
With Common Lisp, you can dodge those bits which you don't yet get until
you do.
Erlang was written originally
created by Ericsson and they use it on their phone switches and other
devices that need high reliability. It seems to have the advantages of
Haskell plus it has very strong concurrency support (threads done in a
safe and sane way: no locks or shared memory, only message passing), has
an emphasis on highly reliable code, you can patch it on the fly without
stopping the program (nice for upgrading those switches that require 5
9's of uptime), can be used to do distributed programming in a
transparent way, and has built in support for a distributed database
called Mnesia. That is pretty much all I know about it so far, haven't
written any code yet. But I look forward to trying it out. We really do
have an embarrassment of riches when it comes to programming languages.
I wouldn't recommend Erlang to anyone except those with an EE degree.
Erlang is almost hardware written as software. It's an abstraction that
you really don't want to get saddled with unless you are writing *very*
distributed programs.
Of course, Erlang appeals to *me* exactly because I think of things in
terms of hardware abstractions.
I never really appreciated the value of RSS until I got the Sage plugin
for Firefox.
I no longer do RSS. I found that I'm better off reading one of the
"link ranking websites" and going through interesting stuff. Normally,
the same websites that I like also hit my link ranker once in a while
and then I go through the backlog that I missed.
-a
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg