summaryrefslogtreecommitdiffhomepage
path: root/standard-ml.html.markdown
diff options
context:
space:
mode:
authorAlburIvan <albur.ivan@outlook.com>2018-10-28 03:00:26 -0400
committerAlburIvan <albur.ivan@outlook.com>2018-10-28 03:00:26 -0400
commitdf0a0fa2a6ea1b818e3c6aaa139f77fde41f0256 (patch)
treec912eebef5bf5bfd45d4c2b6c91f355157041de8 /standard-ml.html.markdown
parent73b8cd9a39ab9b63dd5e2c1c123c363fd014753a (diff)
parent27fa7c50ce23def736a69711f827918acc726e37 (diff)
Merge branch 'master' of github.com:adambard/learnxinyminutes-docs into matlab-es
Diffstat (limited to 'standard-ml.html.markdown')
-rw-r--r--standard-ml.html.markdown11
1 files changed, 11 insertions, 0 deletions
diff --git a/standard-ml.html.markdown b/standard-ml.html.markdown
index 5db15b5c..b34f1c08 100644
--- a/standard-ml.html.markdown
+++ b/standard-ml.html.markdown
@@ -6,6 +6,7 @@ contributors:
- ["David Pedersen", "http://lonelyproton.com/"]
- ["James Baker", "http://www.jbaker.io/"]
- ["Leo Zovic", "http://langnostic.inaimathi.ca/"]
+ - ["Chris Wilson", "http://sencjw.com/"]
---
Standard ML is a functional programming language with type inference and some
@@ -266,6 +267,16 @@ fun second_elem (x::y::xs) = y
fun evenly_positioned_elems (odd::even::xs) = even::evenly_positioned_elems xs
| evenly_positioned_elems [odd] = [] (* Base case: throw away *)
| evenly_positioned_elems [] = [] (* Base case *)
+
+(* The case expression can also be used to pattern match and return a value *)
+datatype temp =
+ C of real
+ | F of real
+
+fun temp_to_f t =
+ case t of
+ C x => x * (9.0 / 5.0) + 32.0
+ | F x => x
(* When matching on records, you must use their slot names, and you must bind
every slot in a record. The order of the slots doesn't matter though. *)