Pair
Pair
Pairは、異なる型の値を管理する際に利用します。
Pairキーワードを用いて、コンストラクタのPair {'A 'B} a bを使って宣言します。
'Aと'Bはどんな型でも指定できます。a bはそれぞれ、aは'A型、bは'B型です。
以下は、Int32型のPair宣言です。
let p =
let one = 1 in
let two = 2 in
Pair {Int32 Int32} one two
次は異なる型によるPair宣言です。
field pp: Pair (String) (Uint32) =
let s1 = "Hello" in
let num = Uint32 2 in
Pair {(String) (Uint32)} s1 num
以下は、パターンマッチングmatchを使ってPairの要素を取得している例です。
let fst =
tfun 'A =>
tfun 'B =>
fun (p : Pair 'A 'B) =>
match p with
| Pair a b => a
end
let p = Pair {Int32 Int32} one two in
let fst_int = @fst Int32 Int32 in
let a = fst_int p in
... (* a = one *) ...
引用元:scilla-lang.org