Talk:ML (programming language)
This is the talk page for discussing improvements to the ML (programming language) article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||
|
ML vs. SML vs. ML family
editThe article mixes ML the language and ML the language family. Standard ML already has its own article. What are references to the original ML language (definition, syntax, semantics, usage, ..)? —Preceding unsigned comment added by Joswig (talk • contribs) 20:22, 15 February 2009 (UTC)
Example
editCan someone conversant in ML fix the example? It is a cut a paste from the Haskell article and contains some obvious errors. For example, there is reference made to the "third line" but the example is only two lines. Osmodiar 18:55, 13 January 2006 (UTC)
What's wrong with Basic?
- It's simplistic and inexpressive. But Talk:BASIC is the correct place to discuss that. — Haeleth Talk 21:50, 7 June 2006 (UTC)
Why is SML/NJ categorised under imperative programming languages?
- Because it's possible to write a 100% imperative program in it. :)
- It is also categorised under functional programming languages: "ML language family" is a subcategory of "Functional languages", so everything in it is automatically considered functional. — Haeleth Talk 08:29, 25 July 2006 (UTC)
Overview
editThe first line has a grammatical error. Since I don't know enough about the subject matter I'm unable to fix it. But the "and therefore..." clause is an incomplete sentence. 68.36.46.101 01:55, 19 October 2007 (UTC)
Stuff removed from Boolean data type article
editThe following section was removed from the article Boolean data type:
begin removed text
Like Ocaml, ML has a bool
type that has true
and false
values. For example:
- fun isittrue x = if x then "YES" else "NO" ; > val isittrue = fn : bool -> string - isittrue true; > val it = "YES" : string - isittrue false; > val it = "NO" : string - isittrue (8=8); > val it = "YES" : string - isittrue (7=5); > val it = "NO" : string
end removed text
Is there a place for this text in the ML-related articles? Perhaps in the Wikibook? Thanks, and all the best, --Jorge Stolfi (talk) 23:47, 30 December 2009 (UTC)
ML possibly incorrectly marked as imperative
editML is a declarative language (source: [1] Page 13) as opposed to imperative as per the information on the wiki page.
References
edit- ^ al.], Alfred V. Aho ... [et (2006). Compilers : principles, techniques, & tools (2nd ed. ed.). Boston, Mass.: Pearson Addison-Wesley. ISBN 0321486811.
{{cite book}}
:|edition=
has extra text (help)
Fun fac...
editAre they seriously demonstrating the factorial function and *not* calling it "fun fact"? We need to change that on the double. Can I get an amen? — Preceding unsigned comment added by 206.21.122.76 (talk) 07:39, 4 December 2013 (UTC)
ML isn't Standard ML
editThe original ML was quite a different language. Type inference has always been a part of ML but there was no pattern matching, records, modules, or datatype declarations. I wouldn't expect to read BCPL and find examples written in C++11 either. Cooksbard90 (talk) 20:42, 7 March 2015 (UTC)
Disambiguation?
editThe concept of "meta language" is different from this specific language. I suggest a disambiguation note near the top. It would be comparable to having a language named "Compiler" (capital "C"). The concept of "compiler" exists outside of such a hypothetical language. 146.233.255.212 (talk) 22:13, 24 February 2021 (UTC)
- The article lead used to read like this:[1]
- ML is a general-purpose functional programming language developed by Robin Milner and others in the early 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM] It has roots in the Lisp language, and has been characterized as "LISP with types". Historically, ML stands for MetaLanguage: it was conceived to develop proof tactics in the LCF theorem prover (whose language, pplambda, a combination of the first-order predicate calculus and the simply-typed polymorphic lambda calculus, had ML as its metalanguage). It is known for its use of the Hindley–Milner type system, whose type inference algorithm can automatically assign the types of most expressions without requiring explicit type annotations. Additionally, the use of this algorithm ensures type safety – there is a formal proof that a well-typed ML program does not cause runtime type errors.
- However, this info about the meaning of ML's name got lost in the history of the article. – Tea2min (talk) 12:15, 25 February 2021 (UTC)
Is Haskell a ML?
editQ: Yes or No, and why? slbtty (talk) 07:01, 5 October 2021 (UTC)
A: Haskell is not an ML. It is non-strict, where ML is strict. It is pure, where ML is impure. It uses typeclasses and not modules. It has a similar type system but otherwise is very different, and indeed one of the motivations for Haskell was to explore strongly-typed functional programming in ways that ML had not. There is a lot of respect for ML in the Haskell community, but the answer is clearly `no`.
Needs a history section; links provided
editML has a rich history, and it is well-documented. I'm not good at wikipedia, so I'll leave the links here for someone else to take all the glory.
Here's the original paper: http://www-public.it-sudparis.eu/~gibson/Teaching/CSC4504/ReadingMaterial/GordonMMNW78.pdf
Here's a good history, with lots of citations, from 2020: https://smlfamily.github.io/history/SML-history.pdf — Preceding unsigned comment added by 2600:8800:6182:4990:0:0:0:13FD (talk) 23:13, 18 June 2022 (UTC)