25 June, 2006

[Haskell] Exercise 2.3

2通りの方法で作る。

まず、whiteとblackを明示的に並べる。

*UsePictures> printPicture (sideBySide (white ++ black) (black ++ white))
............############
............############
............############
............############
............############
............############
............############
............############
............############
............############
............############
............############
############............
############............
############............
############............
############............
############............
############............
############............
############............
############............
############............
############............
*UsePictures>

次にwhiteから2x2のchecker boardを作る関数を作る。(関数の合成を使ってみた)
また、同じPictureを2x2に並べる関数を作って、上記の2x2 checker boardに2回適用すれば8x8になる。
UsePictures.hsへ追記。

-- Ex2.3
checkerV, checkerH, checker22 :: Picture -> Picture
checkerV p = above p (invertColour p)
checkerH p = sideBySide p (invertColour p)
checker22 = checkerH . checkerV

copyV, copyH, copy22 :: Picture -> Picture
copyV p = above p p
copyH p = sideBySide p p
copy22 = copyV . copyH

試してみる。

*UsePictures> printPicture (checker22 white)
............############
............############
............############
............############
............############
............############
............############
............############
............############
............############
............############
............############
############............
############............
############............
############............
############............
############............
############............
############............
############............
############............
############............
############............
*UsePictures> printPicture ((copy22 . copy22 . checker22) white)
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
............############............############............############............############
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
############............############............############............############............
*UsePictures>

No comments: