# Module DA.Tuple¶

Tuple - Ubiquitous functions of tuples.

## Functions¶

first

: (a -> a’) -> (a, b) -> (a’, b)

The pair obtained from a pair by application of a programmer supplied function to the argument pair’s first field.

second

: (b -> b’) -> (a, b) -> (a, b’)

The pair obtained from a pair by application of a programmer supplied function to the argument pair’s second field.

both

: (a -> b) -> (a, a) -> (b, b)

The pair obtained from a pair by application of a programmer supplied function to both the argument pair’s first and second fields.

swap

: (a, b) -> (b, a)

The pair obtained from a pair by permuting the order of the argument pair’s first and second fields.

dupe

: a -> (a, a)

Duplicate a single value into a pair.

> dupe 12 == (12, 12)

fst3

: (a, b, c) -> a

Extract the ‘fst’ of a triple.

snd3

: (a, b, c) -> b

Extract the ‘snd’ of a triple.

thd3

: (a, b, c) -> c

Extract the final element of a triple.

curry3

: ((a, b, c) -> d) -> a -> b -> c -> d

Converts an uncurried function to a curried function.

uncurry3

: (a -> b -> c -> d) -> (a, b, c) -> d

Converts a curried function to a function on a triple.