3 ms·
There's a strong tradition of dynamic fp-ish languages with Erlang, Scheme, Common Lisp[1], and lately Clojure (along with many others) that just isn't about st
by fulafel 6y ago
There's a strong tradition of dynamic fp-ish languages with Erlang, Scheme, Common Lisp[1], and lately Clojure (along with many others) that just isn't about static typing. A lot of people feel that dynamic + fp is just the right thing. It's not an omission, since putting in static typing restricts, complicates and remolds a language a lot.
[1] Yes, there's optional type declarations in CL, as an add-on feature. But I'd guess most CL programs don't elect to use them.
- eyelidlessness 6y agoI’m well aware that most lisps and BEAM languages are dynamically typed. My objection wasn’t that they didn’t include static types, but that there’s also a strong tradition of these languages including a prominent headline about static types, which gets my hopes up that this one is bucking that trend, only to have my hopes dashed. It’s so much a general expectation that a lisp will have a dynamic type system that it’s safe to assume and could go without saying.
- kazinator 6y agoTXR Lisp doesn't mention static types: $ grep 'static type' txr-web/*.html txr/txr.1 $ No hit for "static type" in the web pages or reference manual. Dynamic type ditto: $ grep 'dynamic type' txr-web/*.html txr/txr.1 $ I don't think Common Lisp has a "prominent headline" about static types anywhere, either. There are no hits for any of those terms in the draft ANSI standard: https://franz.com/support/documentation/cl-ansi-standard-draft-w-sidebar.pdf https://franz.com/support/documentation/cl-ansi-standard-dra... Scheme's R7RS explicitly talks about dynamic typing in two places: Introduction: Scheme was one of the first programming languages to incorporate first-class procedures as in the lambda calculus, thereby proving the usefulness of static scope rules and block structure in a dynamically typed language. 1.1 Semantics: Scheme is a dynamically typed language. Types are associated with values (also called objects) rather than with variables. Statically typed languages, by contrast, associate types with variables and expressions as well as with values. That's also the only mention of "static type" or "statically typed". > It’s so much a general expectation that a lisp will have a dynamic type system that it’s safe to assume and could go without saying. A language reference manual has to document the type system so that someone knowing nothing about language type systems can understand it. This can be done without using dynamic type terminology or mentioning static type checking, but it has to be done. There is a lot of detail there; no two dynamic type systems are exactly alike.