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.
@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.
@dougmerritt ...variables don't have types, values have types...
I forgot the author but there was a great paper from the early 80s included in IPE something like Programming Environments Need Dynamic Types, the gist of which was that you simply don't know how much memory needs to be allocated for a type that is going to be invented tomorrow, and in statically typed languages, the practice is to fake dynamic typing using arrays or something anyway. @AmenZwa@fl@Jose_A_Alonso