morioXのCraftお勉強日記 RSSフィード

2006-12-27

[] Getting started with Haskell and Hugs (7日目)  Getting started with Haskell and Hugs (7日目) - morioXのCraftお勉強日記 を含むブックマーク

2.6 Errors and messages

Hugsエラーメッセージの話。シンタックエラーとか型エラーとかプログラムエラーとか。


Summary

Chapter 2の主な内容は、だいたい以下のとおり。

Chapter 2までの2つの章は、これからの章の理論的・実践的な基礎になる、ということらしい。

2006-12-26

[] Getting started with Haskell and Hugs (6日目)  Getting started with Haskell and Hugs (6日目) - morioXのCraftお勉強日記 を含むブックマーク

Exercise 2.3

□(白い四角形)と■(黒い四角形)から、以下の図を2通りのやり方で作りなさい、という問題。

□■

■□

2通り、ってことで、こんな感じで。sideBySideは、2つの絵を横にくっつける関数で、aboveは、2つの絵を縦にくっつける関数

(その1)

check :: Picture

check = above (sideBySide white black) (sideBySide black white)

(その2)

check2 :: Picture

check2 = sideBySide (above white black) (above black white)

で、8*8にしろというので、それも作ってみる。

(その1)

chessBoard :: Picture

chessboard = above (sideBySide check check) (sideBySide check check)

(その2)

chessBoard2 :: Picture

chessboard2 = sideBySide (above check check) (above check check)

Exercise 2.4

とりあえず自分的解答を書いてみる。

まず先に白黒反転した馬を定義。

blackHorse :: Picture

blackHorse = invertColour horse

で、一番左の絵から

horsePicture1 :: Picture

horsePicture1 = above (sideBySide horse blackHorse) (sideBySide blackHorse horse)

まんなかの絵。

horsePicture2 :: Picture

horsePicture2 = above (sideBySide horse blackHorse) (sideBySide (filpV blackHorse) (flipV horse))

右の絵

horsePicture3 :: Picture

horsePicture3 = above (sideBySide horse blackHorse) (sideBySide (rotate blackHorse) (rotate horse))

Exercise 2.5

こちらも2.4とほぼ同じ。描く絵を定義する。

horsePicture4 :: Picture

horsePicture4 = above (sideBySide horse blackHorse) (sideBySide (filpH blackHorse) (flipH horse))

2006-12-25

[] Getting started with Haskell and Hugs (5日目)  Getting started with Haskell and Hugs (5日目) - morioXのCraftお勉強日記 を含むブックマーク

Exercise 2.1

PicturesモジュールからblackHorse, rotate, rotateHorseをインポートしたUsePicturesを定義。あと、プラスαの定義を追加。

module UsePictures (above) where

import Pictures (blackHorse, rotate, rotateHorse)


above :: Picture -> Picture -> Picture

above = (++)

自信無し。意外にモジュールの定義の仕方って身についてないなあ、と再認識

aboveのところは自分で考えて定義を追加しなさい、っていう問題の趣旨がありそうだけど、時間が無いので他のページから定義をコピペ


Exercise 2.2

黒い四角形の定義。

black :: Picture

black = superimpose horse ( invertColor horse )

invertColorで色を反転させた馬の絵を、もとの馬の絵とsuperimposeで重ねてみる。できてるかどうかの前に、もっと綺麗に書けないものか・・・。

2006-12-21

[] Getting started with Haskell and Hugs (4日目)  Getting started with Haskell and Hugs (4日目) - morioXのCraftお勉強日記 を含むブックマーク

2.5 A Second Example: Pictures

例の馬の絵がまたまた登場。Haskellの式でぐりぐりいじります。式一つひとつはとてもくだらないけど、納得できる内容。

2006-12-20

[] Getting started with Haskell and Hugs (3日目)  Getting started with Haskell and Hugs (3日目) - morioXのCraftお勉強日記 を含むブックマーク

2.4 Modules

Haskellでは、ライブラリを使うための仕組みとして、モジュールがあります、という話。現時点でのまとめは以下のような感じ。Chapter 15で詳細な説明をするらしい。