F # - Demetler
Bir tuplevirgülle ayrılmış değerler koleksiyonudur. Bunlar, ilgili değerleri bir arada gruplandıran ad hoc veri yapıları oluşturmak için kullanılır.
Örneğin, ("Zara Ali", "Haydarabad", 10), iki dize değerine ve bir int değerine sahip 3-tuple olup, türüne (string * string * int) sahiptir.
Tuplelar, aynı veya farklı türde çiftler, üçlüler vb. Olabilir.
Burada bazı örnekler verilmiştir -
// 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)
Misal
Bu program, dört kayan değerden oluşan bir demet alan ve ortalamayı döndüren bir işleve sahiptir -
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
Programı derleyip çalıştırdığınızda, aşağıdaki çıktıyı verir -
Avg of four numbers: 7.275000
Bireysel Tuple Üyelerine Erişim
Bir demetin bireysel üyeleri, desen eşleştirme kullanılarak değerlendirilebilir ve yazdırılabilir.
Aşağıdaki örnek kavramı göstermektedir -
Misal
let display tuple1 =
match tuple1 with
| (a, b, c) -> printfn "Detail Info: %A %A %A" a b c
display ("Zara Ali", "Hyderabad", 10 )
Programı derleyip çalıştırdığınızda, aşağıdaki çıktıyı verir -
Detail Info: "Zara Ali" "Hyderabad" 10
F # iki yerleşik işleve sahiptir, fst ve snd, birinci ve ikinci öğeleri 2-tuple içinde döndürür.
Aşağıdaki örnek kavramı göstermektedir -
Misal
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)
Programı derleyip çalıştırdığınızda, aşağıdaki çıktıyı verir -
First member: 23
Second member: 30
First member: "Hello"
Second member: "World!"
First Name: "Zara"
Second Name: "Ali"