On Sat, Feb 09, 2008 at 10:38:29PM -0800, Tracy R Reed wrote:

We have Common Lisp ANSI standard X3.226-1994 for Lisp and we have R5RS for Scheme. I guess two isn't so bad since they are both somewhat different in concept. What we lack are the hit squads.

I'm finding that I can write useful programs in ANSI Common Lisp.  In fact,
there is only one additional package I've needed, CFFI, which is the
"Common Foreign Function Interface".  With that, I can interface with
existing libraries and my code runs on each implementation I have.

R5RS specifies so little it's almost a stretch to call the different
implementations even the same language.  I can't even write trivial
programs that aren't bound to a particular implementation.  Yes, there are
more Scheme implementations, but you kind of have to pick one.

The Common Lisps that I've have used have all tried very hard to comply
with the standard.  The most deviation I've found is with Clisp, which has
an '-ansi' option to fully implement the standard.  It's mostly to do with
output formatting issues where they just don't like the standard.

There are also some design decisions about Scheme that make it much harder
to generate good code, at least without changing the language.  For
example:

  - Globals can be arbitrarily assigned to.  This means, technically,
    inlining is forbidden, since the definition could be changed later.

  - call/cc.  Conceptually nice, since everything else can be implemented
    with it.  But, it requires such a different execution model that
    generating good code is hard.

  - No way to declare types.  In Common Lisp, with a decent compiler, I can
    declare some types and get the same kind of code you would get out of a
    C compiler.

So, my feeling so far is that Scheme is a nice toy for learning lisp, but
that common lisp is a more useful tool.

David

--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to