Le coppie in Ocaml
Nel linguaggio Ocaml posso definire una coppia ordinata (a,b) usando anche tipi di dati differenti.
Cos'è una coppia? Una coppia è un elemento del prodotto cartesiano di due insiemi A e B.
Per scrivere una coppia racchiudo gli elementi tra parentesi tonde e li separo con una virgola.
Gli elementi della coppia possono essere tipi di dati diversi e anche funzioni.
Nota. In senso più generale se gli elementi sono più di due si parla di tuple o più specificatamente di triple (3 elementi), quadruple (4 elementi), ecc. Pertanto, la coppia è un caso particolare di tupla composta da due elementi.
Un esempio pratico
Definisco una coppia formata da due interi
let x = (2,3);;
Il costruttore di tipi di Ocaml mi conferma che si tratta di un tipo di dato int x int
val x : int * int = (2,3)
Dove il simbolo * non è la moltiplicazione, in questo caso è l'equivalente del simbolo matematico x del prodotto cartesiano.
Esempio 2
Definisco una coppia formata da un intero e una stringa
let y = (4, "prova");;
In questo caso Ocaml accetta la stringa come composizione di un tipo intero e di un tipo stringa.
val y : int * string = (4, "prova")
Come leggere gli elementi in una coppia
Per leggere gli elementi della coppia (a,b) in Ocaml posso usare due funzioni predefinite in Ocaml:
- fst() legge il primo elemento della coppia
- snd() legge il secondo elemento della coppia
Un esempio pratico
Definisco una coppia composta dagli interi 2 e 3
let x = (2,3);;
La funzione fst(x) estrapola il primo elemento.
fst(x);;
L'output è
- : int = 2
La funzione snd(x) estrapola il secondo elemento.
snd(x);;
L'output è
- : int = 3
E così via.