Учебники

F # — Кортежи

Кортеж — это разделенная запятыми коллекция значений. Они используются для создания специальных структур данных, которые группируют связанные значения.

Например, («Зара Али», «Хайдарабад», 10) представляет собой 3-кортеж с двумя строковыми значениями и значением int, он имеет тип (string * string * int).

Кортежи могут быть парами, тройками и т. Д. Одного и того же или разных типов.

Некоторые примеры приведены здесь —

// 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)

пример

Эта программа имеет функцию, которая принимает кортеж из четырех значений с плавающей запятой и возвращает среднее значение —

Live Demo

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

Когда вы компилируете и запускаете программу, она выдает следующий вывод:

Avg of four numbers: 7.275000

Доступ к отдельным членам кортежа

Отдельные члены кортежа могут быть оценены и напечатаны с использованием сопоставления с образцом.

Следующий пример иллюстрирует концепцию —

пример

Live Demo

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

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

Когда вы компилируете и запускаете программу, она выдает следующий вывод:

Detail Info: "Zara Ali" "Hyderabad" 10

F # имеет две встроенные функции, fst и snd, которые возвращают первый и второй элементы в двух кортеже.

Следующий пример иллюстрирует концепцию —

пример

Live Demo

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)

Когда вы компилируете и запускаете программу, она выдает следующий вывод: