package tablecloth-base
Functions for manipulating tuples of length two
Functions for manipulating pairs of values
Create
Create a two-tuple with the given values.
The values do not have to be of the same type.
Examples
Tuple2.make 3 "Clementine" = (3, "Clementine")
Create a tuple from the first two elements of an Array
.
If the array is longer than two elements, the extra elements are ignored.
If the array is less than two elements, returns None
.
Examples
Tuple2.from_array [|1; 2|] = Some (1, 2)
Tuple2.from_array [|1|] = None
Tuple2.from_array [|4; 5; 6|] = Some (4, 5)
Create a tuple from the first two elements of a List
.
If the list is longer than two elements, the extra elements are ignored.
If the list is less than two elements, returns None
.
Examples
Tuple2.from_list [1; 2] = Some (1, 2)
Tuple2.from_list [1] = None
Tuple2.from_list [4; 5; 6] = Some (4, 5)
Extract the first value from a tuple.
Examples
Tuple2.first (3, 4) = 3
Tuple2.first ("john", "doe") = "john"
Extract the second value from a tuple.
Examples
Tuple2.second (3, 4) = 4
Tuple2.second ("john", "doe") = "doe"
Transform
Transform the first
value in a tuple.
Examples
Tuple2.map_first ~f:String.reverse ("stressed", 16) = ("desserts", 16)
Tuple2.map_first ~f:String.length ("stressed", 16) = (8, 16)
Transform the second value in a tuple.
Examples
Tuple2.map_second ~f:Float.square_root ("stressed", 16.) = ("stressed", 4.)
Tuple2.map_second ~f:(~-) ("stressed", 16) = ("stressed", -16)
Transform both values of a tuple, using f
for the first value and g
for the second.
Examples
Tuple2.map_each ~f:String.reverse ~g:Float.square_root ("stressed", 16.) = ("desserts", 4.)
Tuple2.map_each ~f:String.length ~g:(~-) ("stressed", 16) = (8, -16)
Transform both of the values of a tuple using the same function.
map_all
can only be used on tuples which have the same type for each value.
Examples
Tuple2.map_all ~f:(Int.add 1) (3, 4) = (4, 5)
Tuple2.map_all ~f:String.length ("was", "stressed") = (3, 8)
Switches the first and second values of a tuple.
Examples
Tuple2.swap (3, 4) = (4, 3)
Tuple2.swap ("stressed", 16) = (16, "stressed")
Convert
Turns a tuple into an Array
of length two.
This function can only be used on tuples which have the same type for each value.
Examples
Tuple2.to_array (3, 4) = [|3; 4|]
Tuple2.to_array ("was", "stressed") = [|"was"; "stressed"|]
Turns a tuple into a list of length two. This function can only be used on tuples which have the same type for each value.
Examples
Tuple2.to_list (3, 4) = [3; 4]
Tuple2.to_list ("was", "stressed") = ["was"; "stressed"]
Test two Tuple2
s for equality, using the provided functions to test the first and second components.
Examples
Tuple2.equal Int.equal String.equal (1, "Fox") (1, "Fox") = true
Tuple2.equal Int.equal String.equal (1, "Fox") (2, "Hen") = false
Compare two Tuple2
s, using the provided f
function to compare the first components. Then, if the first components are equal, the second components are compared with g
.
Examples
Tuple2.compare ~f:Int.compare ~g:String.compare (1, "Fox") (1, "Fox") = 0
Tuple2.compare ~f:Int.compare ~g:String.compare (1, "Fox") (1, "Eel") = 1
Tuple2.compare ~f:Int.compare ~g:String.compare (1, "Fox") (2, "Hen") = -1