言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

双方向制約に魅せられて、理想と現実について。

a = b
この制約(同値制約)について、最も素直な実現法を考える。
C ( a b )
C a: x = (v: x)
C b: x = (v: x)
C a = (v)
C a = (v)

二つの点から成る線

Line ( p1 p2 )
p1 <- Point, p2 <- Point
Point ( x y )

p1 y と p2 y に C の関係がある時水平線である。
C *1
Mix-in っちゅう事かな?

つまり、線、水平線、垂直線から根が一つの継承関係を形作る事が出来ないと言う問題まで来てしまう。もしかして、Prolog と結びつく問題???
やりたい事:
線 + 同値制約 => 水平線型
線 + 同値制約 => 垂直線型

線には *2 の4つの変数が必要である。しかし、水平線には *3 の3変数しか必要ではない。よって、線 -> 水平線 という継承関係はおかしい。一方でインタフェースは同じ必要がある。
インタフェースの継承と自由度(メモリ)の継承を別にする traits
制約を加える事によって、状態の次元は下がる

StarBrowser の考え方は? Visor

骨としての Player

*1:Line p1 y) (Line p2 y

*2:x1 y1) (y1 y2

*3:x1 y) (x2 y