Fsharp-tuples

提供:Dev Guides
移動先:案内検索

F#-タプル

*tuple* は、コンマで区切られた値のコレクションです。 これらは、関連する値をグループ化するアドホックデータ構造の作成に使用されます。

たとえば、(“ Zara Ali”、“ Hyderabad”、10)は、2つの文字列値とint値を持つ3タプルであり、タイプ(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)

このプログラムは、4つの浮動小数点値のタプルを取り、平均を返す関数を持っています-

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

個々のタプルメンバーへのアクセス

タプルの個々のメンバーは、パターンマッチングを使用して評価および印刷できます。

次の例は、概念を示しています-

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#には2つの組み込み関数、 fst および* snd、*があり、2タプルの最初と2番目の項目を返します。

次の例は、概念を示しています-

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)

あなたがプログラムをコンパイルして実行すると、次の出力が得られます-

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