OCaml/Krotki
< OCaml
Krotki (ang. tuples) to typ danych, który składa się z kilku elementów o tym samym lub
różnym typie. Są to odpowiednio pary, trójki, czwórki etc. Do oddzielenia ich
poszczególnych elementów używane są przecinki (w przeciwieństwie do średników
używanych w listach). Dla zwiększenia czytelności często otacza się je
nawiasami. W opisie typów pojawia się zamiast przecinka symbol gwiazdki '*'.
Mogą być używane do zwracania dwóch zmiennych przez funkcje, do definiowania list par elementów i w wielu innych zastosowaniach. Przykładowo:
# let func a = (a, "tekst");;
val func : 'a -> 'a * string = <fun>
(* Funkcja przyjmuje dowolny parametr; zwraca krotkę. *)
# func 5;;
- : int * string = (5, "tekst")
# let one, two = func "inny";;
val one : string = "inny"
val two : string = "tekst"
# (4, 5.0) :: (10, 12.32) :: [];;
- : (int * float) list = [(4, 5.); (10, 12.32)]
Warto zauważyć, że w przeciwieństwie do list, w krotkach do oddzielenia kolejnych wyrażeń używa się przecinka (a nie średnika). Kod:
# [1, 2, 3, 4];;
- : (int * int * int * int) list = [(1, 2, 3, 4)]
Jak widać nie tworzy listy liczb, ale listę zawierającą krotki czterech liczb.