Live data from Hacker News

Standard ML in 2020

notes.eatonphil.com

121–125 of 125 posts

Re: Standard ML in 2020

#121

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).

A portfolio management website (frontend and backend) and a portfolio performance calculation engine. You're welcome to contact me on my personal email, if you want to hear more.

Re: Standard ML in 2020

#122
post #119
post #116

Earlier 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…

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 lacks.

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

#123
post #119

Earlier 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…

[deleted]

Re: Standard ML in 2020

#124
post #119

Earlier 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…

[deleted]

Re: Standard ML in 2020

#125
post #119

Earlier 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…

Again, I've never seen this distinction made before. Please show me a body of literature that claims that dynamically typed languages do not have a type system - your claims on their own do not convince me.
Post reply on HN