Slide 54
Slide 54 text
KokaのStateでの等式(擬似コード)
この記法で、State の代表的な law は次のように書けます。
1. get した値をそのまま set し直すなら、何もしないのと同じ。
`get(s -> set(s); return ()) = return ()`
2. set を二回続けると、最後の set だけが残る。
`set(s); set(t); return v = set(t); return v`
3. set の直後に get すると、set した値が得られる。
`set(s); get(x -> return x) = set(s); return s`
4. 状態を変えずに get を二回行うと、同じ値が得られる。
`get(s -> get(t -> return (s,t))) = get(s -> return (s,s))`
5. 4 の具体例として、2回 get した値を使って set する場合。
`get(s -> get(t -> set(s + t); return (s,t))) = get(s -> set(s + s); return (s,s))`
【橋渡し】
※これは厳密な公理リストではなく、直感を掴むための代表例です