We've already come across the `id` function, namely λ `x. x`.
-Other common functions are `fst`, which takes two arguments and returns the first of them; `snd`, which takes two arguments and returns the second of them; and `swap`, which takes two arguments and returns them both but with their positions swapped. These functions can be defined like this:
+Other common functions are `fst`, which takes two arguments and returns the first of them; `snd`, which takes two arguments and returns the second of them; and `swap`, which takes two arguments and returns them both but with their positions swapped. A fourth function is `dup`, which takes one argument and returns it twice.
+These functions can be defined like this:
let
fst (x, y) = x;
snd (x, y) = y;
- swap (x, y) = (y, x)
- in (fst, snd, swap)
+ swap (x, y) = (y, x);
+ dup x = (x, x)
+ in (fst, snd, swap, dup)