From 7e0ff6635f98a9139894d40e79e01e05e53abb87 Mon Sep 17 00:00:00 2001 From: Jim Pryor Date: Tue, 24 Aug 2010 18:26:03 -0400 Subject: [PATCH 1/1] family_tree: SML variants Signed-off-by: Jim Pryor --- family_tree_of_functional_programming_languages.mdwn | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/family_tree_of_functional_programming_languages.mdwn b/family_tree_of_functional_programming_languages.mdwn index 00864835..dd4c1c3c 100644 --- a/family_tree_of_functional_programming_languages.mdwn +++ b/family_tree_of_functional_programming_languages.mdwn @@ -100,12 +100,16 @@ the seminar. Most programming languages, functional or not, use **strict/eager evaluation**. For instance, languages of the ML family are all statically-typed functional languages with strict/eager evaluation. These include [[!wikipedia Standard ML desc="SML"]] and -[[!wikipedia Caml]] and [[!wikipedia Nemerle]]. Other statically-typed -functional languages with strict/eager evaluation are [[!wikipedia Scala (programming language) desc="Scala"]] and -[[!wikipedia Coq]]. Like Scheme, many of these languages permit *imperatival* -as well as functional coding; but they are regarded as functional programming -languages because they are so hospitable to functional programming, and give it -a central place in their design. +[[!wikipedia Caml]] and [[!wikipedia Nemerle]]. SML in turn has several variants +or implementations: [[!wikipedia MLton]], [[!wikipedia SML/NJ]], [[!wikipedia Moscow ML]], +and [[!wikipedia Mythryl]]. + +Other statically-typed functional languages with strict/eager evaluation are +[[!wikipedia Scala (programming language) desc="Scala"]] and [[!wikipedia +Coq]]. Like Scheme, many of these languages permit *imperatival* as well as +functional coding; but they are regarded as functional programming languages +because they are so hospitable to functional programming, and give it a central +place in their design. A few languages such as [[!wikipedia Miranda (programming language) desc="Miranda"]] and [[!wikipedia Haskell (programming language) desc="Haskell"]] are statically-typed languages that instead mostly use **lazy evaluation**. However, -- 2.11.0