diff options
| author | Paul Buetow <paul@buetow.org> | 2023-04-09 14:02:40 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2023-04-09 14:02:40 +0300 |
| commit | 52bd2c196e9ca21a01b0f6c04afc127916423b9e (patch) | |
| tree | 297bb2a51fd2413c6e89c1c5c8f57b06b0fd65d7 /gemfeed/2010-04-09-standard-ml-and-haskell.md | |
| parent | 8fcde6dd14ebc360bd76b94a889bdbebda5b8fd2 (diff) | |
Update content for md
Diffstat (limited to 'gemfeed/2010-04-09-standard-ml-and-haskell.md')
| -rw-r--r-- | gemfeed/2010-04-09-standard-ml-and-haskell.md | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/gemfeed/2010-04-09-standard-ml-and-haskell.md b/gemfeed/2010-04-09-standard-ml-and-haskell.md index f6ca7719..f92e6b89 100644 --- a/gemfeed/2010-04-09-standard-ml-and-haskell.md +++ b/gemfeed/2010-04-09-standard-ml-and-haskell.md @@ -12,7 +12,7 @@ Haskell is also a "pure functional" programming language, whereas SML also makes Standard ML: -``` +```sml datatype ’a multi = EMPTY | ELEM of ’a @@ -21,7 +21,7 @@ datatype ’a multi Haskell: -``` +```haskell data (Eq a) => Multi a = Empty | Elem a @@ -33,7 +33,7 @@ data (Eq a) => Multi a Standard ML: -``` +```sml fun number (EMPTY) _ = 0 | number (ELEM x) w = if x = w then 1 else 0 | number (UNION (x,y)) w = (number x w) + (number y w) @@ -44,7 +44,7 @@ fun test_number w = number (UNION (EMPTY, \ Haskell: -``` +```haskell number Empty _ = 0 number (Elem x) w = if x == w then 1 else 0 test_number w = number (Union Empty \ @@ -56,7 +56,7 @@ test_number w = number (Union Empty \ Standard ML: -``` +```sml fun simplify (UNION (x,y)) = let fun is_empty (EMPTY) = true | is_empty _ = false val x’ = simplify x @@ -74,7 +74,7 @@ fun simplify (UNION (x,y)) = Haskell: -``` +```haskell simplify (Union x y) | (isEmpty x’) && (isEmpty y’) = Empty | isEmpty x’ = y’ @@ -92,7 +92,7 @@ simplify x = x Standard ML: -``` +```sml fun delete_all m w = let fun delete_all’ (ELEM x) = if x = w then EMPTY else ELEM x | delete_all’ (UNION (x,y)) = UNION (delete_all’ x, delete_all’ y) @@ -103,7 +103,7 @@ fun delete_all m w = Haskell: -``` +```haskell delete_all m w = simplify (delete_all’ m) where delete_all’ (Elem x) = if x == w then Empty else Elem x @@ -115,7 +115,7 @@ delete_all m w = simplify (delete_all’ m) Standard ML: -``` +```sml fun delete_one m w = let fun delete_one’ (UNION (x,y)) = let val (x’, deleted) = delete_one’ x @@ -135,7 +135,7 @@ fun delete_one m w = Haskell: -``` +```haskell delete_one m w = do let (m’, _) = delete_one’ m simplify m’ |
