4 ms·
Common Lisp is strongly typed, it's just that types follow values rather than bindings. This presents some code generation challenges, but it will warn on corre
by User23 3y ago
Common Lisp is strongly typed, it's just that types follow values rather than bindings. This presents some code generation challenges, but it will warn on correctness just fine.
And of course if you really want an ML style BDSM type system in Common Lisp there's Coalton[1].
[1] https://github.com/coalton-lang/coalton https://github.com/coalton-lang/coalton
- lmm 3y ago> Common Lisp is strongly typed, it's just that types follow values rather than bindings. Then they're not types. Types go on terms, i.e. expressions, not on values. > This presents some code generation challenges, but it will warn on correctness just fine. Warn on correctness it may, but it's simply impossible for a setup like that to reliably error on incorrectness at compile time; a Turing-complete language like Common Lisp cannot determine any nontrivial property of expressions (in a way that works in all cases) without evaluating them. If your types go with your values then you can't check your types without evaluating your values, at which point compile time is long gone.
- fulafel 3y agoThey have been called types (and type errors, etc) for ages in dynamic languages, it's estabilished terminology.