From d3a70f706d57530e6c3a12364af0fdcf51ec6e20 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 31 May 2021 10:09:19 +0100 Subject: Publishing new version --- gemfeed/2010-04-09-standard-ml-and-haskell.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gemfeed/2010-04-09-standard-ml-and-haskell.html') diff --git a/gemfeed/2010-04-09-standard-ml-and-haskell.html b/gemfeed/2010-04-09-standard-ml-and-haskell.html index 256c8faf..4602f248 100644 --- a/gemfeed/2010-04-09-standard-ml-and-haskell.html +++ b/gemfeed/2010-04-09-standard-ml-and-haskell.html @@ -50,10 +50,10 @@ h2, h3 {

Standard ML and Haskell

Written by Paul Buetow 2010-04-09

-

I am currently looking into the functional programming language Standard ML (aka SML). The purpose is to refresh my functional programming skills and to learn something new too. Since I already know a little Haskell, could I do not help myself and I implemented the same exercises in Haskell too.

-

As you will see, SML and Haskell are very similar (at least when it comes to the basics). However, the syntax of Haskell is a bit more "advanced". Haskell utilizes fewer keywords (e.g. no val, end, fun, fn ...). Haskell also allows to explicitly write down the function types. What I have been missing in SML so far is the so-called pattern guards. Although this is a very superficial comparison for now, so far I like Haskell more than SML. Nevertheless, I thought it would be fun to demonstrate a few simple functions of both languages to show off the similarities.

-

Haskell is also a "pure functional" programming language, whereas SML also makes explicit use of imperative concepts. I am by far not a specialist in either of these languages but here are a few functions implemented in both, SML and Haskell:

-

Defining a multi data type

+

I am currently looking into the functional programming language Standard ML (aka SML). The purpose is to refresh my functional programming skills and to learn something new too. Since I already knew a little Haskell, I could not help myself, and I also implemented the same exercises in Haskell.

+

As you will see, SML and Haskell are very similar (at least when it comes to the basics). However, the syntax of Haskell is a bit more "advanced". Haskell utilizes fewer keywords (e.g. no val, end, fun, fn ...). Haskell also allows to write down the function types explicitly. What I have been missing in SML so far is the so-called pattern guards. Although this is a very superficial comparison for now, so far, I like Haskell more than SML. Nevertheless, I thought it would be fun to demonstrate a few simple functions of both languages to show off the similarities.

+

Haskell is also a "pure functional" programming language, whereas SML also makes explicit use of imperative concepts. I am by far not a specialist in either of these languages, but here are a few functions implemented in both SML and Haskell:

+

Defining a multi-data type

Standard ML:

 datatype ’a multi
@@ -171,8 +171,8 @@ delete_one m w = do
             if x == w then (Empty, True) else (Elem x, False)
         delete_one’ x = (x, False)
 
-

Higher order functions

-

The first line is always the SML code, the second line always the Haskell variant:

+

Higher-order functions

+

The first line is always the SML code, the second line the Haskell variant:

 fun make_map_fn f1 = fn (x,y) => f1 x :: y
 make_map_fn f1 = \x y -> f1 x : y
-- 
cgit v1.2.3