Xavier Noria wrote:
> On Oct 22, 2007, at 4:23 PM, M. Edward (Ed) Borasky wrote:
>
>> Martin DeMello wrote:
>>> Also, Scheme is mostly functional, but Common Lisp is multiparadigm.
>>
>> Both are really Lisp 1.5 with some simple core semantics changes and
>> different libraries. :) But seriously, both are "mostly functional"
>> but contain imperative features.
>
> In what sense? I don't think Lisp is mostly functional nowadays any more
> than Perl is mostly functional so to speak. You _can_ write in a
> functional style in both languages, but in my view they are
> multi-paradigm nowadays.
I'm not sure what "multi-paradigm" means, but Lisp 1.5, Common Lisp and
Scheme are at their core functional languages based on the lambda
calculus with "enough" imperative features, macros and side effects to
get work done. An awful lot of Lisp (and Scheme) code has been written
over the years, but it's still really Lisp 1.5 at heart.
You can almost get away with writing Lisp 1.5 in either Common Lisp or
Scheme. Where you'll get thrown off is
a. Lexical scoping. Both Common Lisp and Scheme are lexically scoped,
but Lisp 1.5 was dynamic.
b. There ain't no "evalquote" any more -- it's "read - eval - print".
c. Scheme treats "nil" as true.