F # - Tuples

UNE tupleest une collection de valeurs séparées par des virgules. Ils sont utilisés pour créer des structures de données ad hoc, qui regroupent les valeurs associées.

Par exemple, («Zara Ali», «Hyderabad», 10) est un 3-tuple avec deux valeurs de chaîne et une valeur int, il a le type (string * string * int).

Les tuples peuvent être des paires, des triplets, etc., de types identiques ou différents.

Quelques exemples sont fournis ici -

// Tuple of two integers.
( 4, 5 )

// Triple of strings.
( "one", "two", "three" )

// Tuple of unknown types.
( a, b )

// Tuple that has mixed types.
( "Absolute Classes", 1, 2.0 )

// Tuple of integer expressions.
( a * 4, b + 7)

Exemple

Ce programme a une fonction qui prend un tuple de quatre valeurs flottantes et renvoie la moyenne -

let averageFour (a, b, c, d) =
   let sum = a + b + c + d
   sum / 4.0

let avg:float = averageFour (4.0, 5.1, 8.0, 12.0)
printfn "Avg of four numbers: %f" avg

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

Avg of four numbers: 7.275000

Accès aux membres individuels de Tuple

Les membres individuels d'un tuple peuvent être évalués et imprimés en utilisant la correspondance de motifs.

L'exemple suivant illustre le concept -

Exemple

let display tuple1 =
   match tuple1 with
   | (a, b, c) -> printfn "Detail Info: %A %A %A" a b c

display ("Zara Ali", "Hyderabad", 10 )

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

Detail Info: "Zara Ali" "Hyderabad" 10

F # a deux fonctions intégrées, fst et snd, qui renvoient les premier et deuxième éléments dans un 2-tuple.

L'exemple suivant illustre le concept -

Exemple

printfn "First member: %A" (fst(23, 30))
printfn "Second member: %A" (snd(23, 30))

printfn "First member: %A" (fst("Hello", "World!"))
printfn "Second member: %A" (snd("Hello", "World!"))

let nameTuple = ("Zara", "Ali")

printfn "First Name: %A" (fst nameTuple)
printfn "Second Name: %A" (snd nameTuple)

Lorsque vous compilez et exécutez le programme, il produit la sortie suivante -

First member: 23
Second member: 30
First member: "Hello"
Second member: "World!"
First Name: "Zara"
Second Name: "Ali"