@Jose_A_Alonso "Part of what makes Lisp distinctive is that it is designed to evolve. As new abstractions become popular (object-oriented programming, for example), it always turns out to be easy to implement them in Lisp."
I wonder if we might implement static type checking (and patterns too.) in Common Lisp, turning it into a kind of ML.
@fl @Jose_A_Alonso Great stuff, ain't it?
I know a handful of LISP/Scheme implementations that support simply-typed 𝜆-calculus with pattern matching—the Typed Racket being the best known. But they all lean more toward Python 3 and less toward ML in their implementation of the type system.
I'd say though that much of what counts as the "traditional strengths" of LISP was derived from its homoiconicity, its functional core, and its imperative addons, but not from its typyness, for there was no type system, originally. This makes LISP way of working markedly different from ML way of working.
@AmenZwa @fl @Jose_A_Alonso
"there was no type system, originally"
It is a pet peeve of mine for people to call dynamic typing "no typing".
The very first Lisp of course had cons pairs, symbolic atoms, and integers -- dynamically typed.
@AmenZwa @fl @Jose_A_Alonso
P.S.
> its homoiconicity
Long ago on c2.com (the world's first wiki) we had a big battle where I defined and explained the term "homoiconic", and for some bizarre reason a number of people acted as though it was a synonym for "good language", and proceeded to argue that C, C++, Perl etc etc etc were all homoiconic.
It drove me nuts.
@dougmerritt @fl @Jose_A_Alonso Perhaps they conflated the “homoiconitity” concept with a “macro” based implementation, and had assumed that any language with a macro facility is homoiconic.
@AmenZwa @fl @Jose_A_Alonso
I like that your impulse is to look for a way to think the best of people.
@dougmerritt @fl @Jose_A_Alonso I like that.There is much truth in that insight, my friend.