F # - Tuplas
UN tuplees una colección de valores separados por comas. Se utilizan para crear estructuras de datos ad hoc, que agrupan valores relacionados.
Por ejemplo, ("Zara Ali", "Hyderabad", 10) es una tupla de 3 con dos valores de cadena y un valor int, tiene el tipo (cadena * cadena * int).
Las tuplas pueden ser pares, triples, etc., del mismo tipo o de diferentes tipos.
Aquí se proporcionan algunos ejemplos:
// 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)
Ejemplo
Este programa tiene una función que toma una tupla de cuatro valores flotantes y devuelve el promedio:
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
Cuando compila y ejecuta el programa, produce el siguiente resultado:
Avg of four numbers: 7.275000
Acceso a miembros individuales de la tupla
Los miembros individuales de una tupla pueden evaluarse e imprimirse mediante la coincidencia de patrones.
El siguiente ejemplo ilustra el concepto:
Ejemplo
let display tuple1 =
match tuple1 with
| (a, b, c) -> printfn "Detail Info: %A %A %A" a b c
display ("Zara Ali", "Hyderabad", 10 )
Cuando compila y ejecuta el programa, produce el siguiente resultado:
Detail Info: "Zara Ali" "Hyderabad" 10
F # tiene dos funciones integradas, fst y snd, que devuelven el primer y segundo elementos en una tupla de 2.
El siguiente ejemplo ilustra el concepto:
Ejemplo
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)
Cuando compila y ejecuta el programa, produce el siguiente resultado:
First member: 23
Second member: 30
First member: "Hello"
Second member: "World!"
First Name: "Zara"
Second Name: "Ali"