Python syntax in Lisp and Scheme

David Rush drush at aol.net
Sat Oct 4 14:08:46 EDT 2003


Since no one has done a point-by-point correction of the errors w/rt 
Scheme...

On 03 Oct 2003 11:25:31 -0400, Jeremy H. Brown <jhbrown at ai.mit.edu> wrote:
> Here are a few of the (arguably) notable differences:
>
> Scheme          Common Lisp
> Philosophy              minimalism      comprehensiveness
                          orthogonality   compromise

> Namespaces              one             two (functions, variables)
                                          more than two, actually

> Continuations           yes             no
> Object system           no              yes

It really depends on how you define 'object system' as to whether or not 
Scheme has one. I personally think it does, but you have to be prepared
to crawl around the foundations of OOP (and CS generally) before this
becomes apparent. It helps if you've ever lived with unconventional
object systems like Self.

> Exceptions              no              yes
                          yes, via continuations which reify the
                          fundamental control operators in all languages

> Macro system            syntax-rules    defmacro
                          most Schemes provide defmacro style macros as
                          they are relatively easy to implement correctly
                          (easier than syntax-rules anyway)

> Implementations         >10             ~4
                          too many to count. The FAQ lists over twenty. IMO
                          there are about 9 'major' implementations which 
have
                          relatively complete compliance to R5RS and/or
                          significant extension libraries

> Performance             "worse"         "better"
                          This is absolutely wrong. Scheme actually boasts 
one
                          of the most efficient compliers on the planet in 
the
                          StaLIn (Static Language Implementation) Scheme 
system.
                          Larceny, Bigloo, and Gambit are also all quite 
zippy
                          when compiled.

> Standards               IEEE            ANSI
                          Hrmf. 'Scheme' and 'Standard' are slightly skewed 
terms.
                          This is probably both the greatest weakness of 
the
                          language and  also its greatest strength. R5RS is 
more
                          of a description to programmers of how to write 
portable
                          code than it is a constraint on implementors. 
Scheme is
                          probably more of a "family" of languages than 
Lisp is
                          at that.

                          Anyway, Nobody really pays much attention to 
IEEE, although
                          that may change since it's being reworked this 
year. The
                          real standard thus far has been the community 
consensus
                          document called R5RS, the Revised^5 Report on the 
Algorithmic
                          Language Scheme. There is a growing consensus 
that it needs
                          work, but nobody has yet figured out how to make 
a new version happen (And I believe that the IEEE effort is just
                          bringing IEEE up to date w/R5RS)

> Reference name          R5RS            CLTL2
> Reference length        50pp            1029pp
> Standard libraries      "few"           "more"
                          Well, we're up to SRFI-45 (admittedly a number of 
them have been withdrawn, but the code and specification are still 
available) and there's very little overlap.
                          Most of the SRFIs have highly portable 
implementations.

> Support Community       Academic        Applications writers
                          in outlook, perhaps, but the academic component 
has dropped fairly significantly over the years. The best implementations 
still come out of academia, but the better libraries are starting to come 
from people in the industry.
                          There is also an emphasis on heavily-armed 
programming
                          which is sadly lacking in other branches of the 
IT
                          industry. Remember - there is no Scheme 
Underground.

david rush
-- 
(\x.(x x) \x.(x x)) -> (s i i (s i i))
        -- aki helin (on comp.lang.scheme)




More information about the Python-list mailing list