Intersect(Line(1,2),Point(1,3)) の結果は Point(1,3)となるような。ここでLineの第1パラメータは傾き、第2パラメータは切片である。Pointはx座標とy座標。
SMLのコードはほとんど実装済みで残りをちょろっとかくだけだったので比較的簡単であった。Rubyは結構なやんだが、それはダブルディスパッチを多用するため、どこからどこが呼ばれてるんだっけ?とむやみに書いていたらわからなくなったから。表を書いたらスッキリ整理できてちゃんとできた。ような気がする。
ここで勉強するとコードが綺麗に書けるようになる、その練習にもなるから面白いなあ。