ex.4.29 の対応前後で既存のテストプログラムの結果が同じ、ステップ数が減っているまたは同じであることを確認したので、
色々と突っ込みどころは満載ですが、ひとまず ex.4.29 を完了とさせていただきました。その後、ex.4.30 を解いています。
色々と突っ込みどころは満載ですが、ひとまず ex.4.29 を完了とさせていただきました。その後、ex.4.30 を解いています。
obj :: OpenSCADM Model3d
obj = do
let (Right r) = sketch do
a <- point & x 0 & y 0
b <- point & x 4 & y 0
v1 <- line & from a & degree 30
v2 <- line & from b & degree 90
c <- intersectionPoint v1 v2
poly =<< traverse (chamfer 0.5 . pure) [a, b, c]
pure $ linearExtrudeDefault 1 rinstance (Models a) => Models (a, a) where type Res (a, a) = (Res a, Res a) toList (a, b) = toList a <> toList b <&> fmap (const Proxy) fromList [(a, pa), (b, pb)] = (fromList [(a, unsafeCoerce pa :: Proxy a)], fromList [(b, unsafeCoerce pb :: Proxy a)]) fromList _ = error "fromList: (a, b)"
data Hoge = Hoge
{ honi :: Polygon,
fuwa :: Point,
poyo :: Polygon
}data HogeRes = HogeRes
{ honi :: Model2d,
fuwa :: Vector2d,
poyo :: Model2d
}(next|prev)permutation(By)? のうち存在しない3関数を追加する)にbenchmarkとchangelogを足す作業をしようと思います。