1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- What do we want?
- ────────────────
- ∙ declaration syntax
- record Point : Set where
- x : Nat
- y : Nat
- ∙ constructor
- record { x = 4; y = 2 }
- ∙ projection functions
- dist = x p ^ 2 + y p ^ 2
- ∙ open
- open module P = Point p
- dist = sqrt (x ^ 2 + y ^ 2)
- ∙ η
- p ≡ record { x = x p; y = y p }
- ∙ pattern matching
- f (record { x = suc n }) = n
- ∙ record update syntax
- how?
- record p { x = zero } ?
- Schedule
- ────────
- First
- ∙ declaration systax
- ∙ constructor
- ∙ projection functions
- ∙ open
- Next
- ∙ η
- Later
- ∙ pattern matching
- ∙ update syntax
- What does it mean?
- ──────────────────
- data Point : Set where
- <Point> : (x : Nat)(y : Nat) -> Point
- module Point (p : Point) where
- x : Nat
- x = <magic>
- y : Nat
- y = <magic>
- Issues
- ──────
- ∙ mutual records? yes
- will it be a problem? probably not
|