Earlier quoted context omitted.
I have worked professionally with Standard ML for a few years, but my friends and I used to joke that I was probably the only professional Standard ML developer in existence.
What did you build? The only real use cases I've heard of were in language prototypes or proof assistants (i.e. HOL, Isabelle).
Standard ML in 2020
121–125 of 125 posts
Re: Standard ML in 2020
#122Earlier quoted context omitted.
Ok, I don't want to start a language war again, when I say types, I mean the modern reference to the word that it has a static type system. Indeed, Lisp languages are strongly typed but I'm sorry, in the real world it doesn't help me, I need types, statically checked types. I don't know if Lisp, the language, influenced Java and Scala so much, it was more about its runtime, the garbage collector, etc. The only thing…
> when I say types, I mean the modern reference to the word that it has a static type system Can you show me a significant body of literature or a whole community that uses "types" to mean "a strong type system"? Because I've never heard that aliasing done before. > I don't know if Lisp, the language, influenced Java and Scala so much, it was more about its runtime, the garbage collector, etc. Lisp pioneered lambdas…
In Common Lisp objects are values, so runtime tags are attached to data objects => which are actually values => which are stored in variables => which are not typed.
You can make it optionally typed at compile time to help the compiler but that means to annotate your code with 'type' keyword and it's verbose. The compiler does not enforce it.
Re: Standard ML in 2020
#123Earlier quoted context omitted.
> when I say types, I mean the modern reference to the word that it has a static type system Can you show me a significant body of literature or a whole community that uses "types" to mean "a strong type system"? Because I've never heard that aliasing done before. > I don't know if Lisp, the language, influenced Java and Scala so much, it was more about its runtime, the garbage collector, etc. Lisp pioneered lambdas…
All languages associate types to expressions. But, all dynamic languages can have only one type for expressions. Indeed, dynamic languages associate types to values all the time but there is no static distinction. What people from dynamic languages are calling "types" are in fact runtime tags. What makes Lisp strongly typed are those runtime tags that prevent implicit conversions at runtime, something that JavaScript…
Re: Standard ML in 2020
#124Earlier quoted context omitted.
> when I say types, I mean the modern reference to the word that it has a static type system Can you show me a significant body of literature or a whole community that uses "types" to mean "a strong type system"? Because I've never heard that aliasing done before. > I don't know if Lisp, the language, influenced Java and Scala so much, it was more about its runtime, the garbage collector, etc. Lisp pioneered lambdas…
All languages associate types to expressions. But, all dynamic languages can have only one type for expressions. Indeed, dynamic languages associate types to values all the time but there is no static distinction. What people from dynamic languages are calling "types" are in fact runtime tags. What makes Lisp strongly typed are those runtime tags that prevent implicit conversions at runtime, something that JavaScript…
Re: Standard ML in 2020
#125Earlier quoted context omitted.
> when I say types, I mean the modern reference to the word that it has a static type system Can you show me a significant body of literature or a whole community that uses "types" to mean "a strong type system"? Because I've never heard that aliasing done before. > I don't know if Lisp, the language, influenced Java and Scala so much, it was more about its runtime, the garbage collector, etc. Lisp pioneered lambdas…
All languages associate types to expressions. But, all dynamic languages can have only one type for expressions. Indeed, dynamic languages associate types to values all the time but there is no static distinction. What people from dynamic languages are calling "types" are in fact runtime tags. What makes Lisp strongly typed are those runtime tags that prevent implicit conversions at runtime, something that JavaScript…