()
はUnit型の唯一の要素。(3)
は 3 のこと。型Nat
(3, 4)
はペア型Nat×Nat
(3, 4, 5)
はNat×Nat×Nat
(3, 4, 5) = (3, (4, 5))
右結合的な二項演算子- .1 は .fst、.2 は .snd
⟨カンマ区切り項目並び⟩
は構造体リテラルの略記。フィールド名を省略できる。ただし、型情報が必須。- 山形括弧は \<, \> で入力できる。
(⟨⟩ : Unit)
はOK。()
は、これに型情報が埋め込まれていると思えばよい。
structure Point2D where x : Float y : Float #check Point2D.mk 1.0 2.0 -- Point2D #check {x:= 1.0, y := 2.0 : Point2D} -- Point2D #check (⟨1.0, 2.0⟩ : Point2D) -- Point2D #check (⟨⟩ : Unit) -- Unit