bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

2014-07-01から1ヶ月間の記事一覧

チャイ

紅茶はインドやセイロンの特産品である。アッサム、ダージリンなどが有名である。インドに行くと、チャイをどうぞといって甘いミルクティーが出てくる。 日本で紅茶というと、ポットに紅茶の葉を入れ、さらに、熱いお湯を注いで、2-3分ぐらい蒸らしたもの…

乱舞するメッセージ(4)

1.会計システムを完成させる 様々な準備が整ったので、会計システムをいよいよ完成させることにする。これまでのシステムの欠点は、複雑なメッセージの送受ができないことと、担当者ごとにメッセージを送るための通信路を設けていることである。会社の規模…

乱舞するメッセージ(3)

1.帳簿をつける 担当者間でメッセージを送ることが可能になったので、帳簿をつけることにする。Haskellでのプログラムが、他の言語でのプログラムと異なる点は、変数の値を変えられないということである(STMは例外で、値の変更を安全におこなえる仕組みを…

乱舞するメッセージ(2)

1.小さな会社 小さな会社の従業員は、購買担当者、営業担当者、経理担当者の3人とし、小さな会社は現金取引で商いをしているとする。購買担当者は仕入れをしたとき、経理担当者にその個数を伝えるものとし、販売担当者は販売をしたとき、経理担当者にやは…

乱舞するメッセージ(1)

1.概略 複数のエージェントがトランザクション処理を行う場合は並行処理となる。並行処理においては、複数のエージェントが一つの資源を争う場合がある。会計システムであれば帳簿であるし、航空券のチケット予約システムでは座席ということになる。 並行…

Haskellを利用して簡単な会計システムを実現する(5)

1.小さな会社を運用してみる 小さな会社での登場人物が独立したエージェントとして活躍すると、並行処理での会計システムの稼働状況を観察できる。そこで、乱数を発生させ、営業の担当者は0.1-0.5秒の間のランダムな時間に50個の商品を販売し、購買の担当…

Haskellを利用して簡単な会計システムを実現する(4)

1.取引をHaskellで記述する 勘定科目が用意できたので、簡単な取引が行えるようにする。この会計システムを利用する人は、小さな会社にも関わらず、購買の担当者、営業の担当者、会計の担当者、投資家の4人とする。 購買の担当者buyerは、商品を購入する…

Haskellを利用して簡単な会計システムを実現する(3)

1.勘定科目 勘定科目は、資産に関係する科目、負債(資本金を含む)に関係する科目、費用に関係する科目、売上に関係する科目に分けることができる。総勘定元帳などの帳簿をつけるときは、資産に関する科目と費用に関係する科目の現在高は借方に記述し、負債…

Haskellを利用して簡単な会計システムを実現する(2)

1.トランザクション処理 会計システムの一つの特徴はトランザクション処理である。会計システムにおいては、仕訳伝票が処置の一つの対象となる。ウェブベースのシステムであれば、ユーザの事務所にある端末、あるいは、コンピュータから伝票が入力され、そ…

Haskellを利用して簡単な会計システムを実現する(1)

1.会計システム 会計システムは、企業の基幹システムの中でも最も重要なシステムの一つである。会社の収支がどのようになっているか、資産は増えているのか減っているのか、預金も含めて現金は十分に確保されているのかなど、会社を運用していくうえで、重…

Haskellでクイズ「嫉妬深い男たち」を解く(5)

1.次の場面を求める 舟が一方の岸から他方の岸にわたり、今度は逆に折り返してきたときの場面を得る関数nextShotを考える。折り返しの時は、乗客となる候補がいくつかあるので、複数の場面が存在することとなる。この関数は、岸についたとき乗客を降ろし、…

Haskellでクイズ「嫉妬深い男たち」を解く(4)

1.安全な組み合わせを求める 与えられたGroupから、乗船するGroupと岸に残るGroupとをそれぞれフィールドにしたレコード(これはTwoGroupsと呼ばれるレコード型を有する)のリストを返してくれる関数をseparateGroupとする。この関数は、先に説明した場合分…

Haskellでクイズ「嫉妬深い男たち」を解く(3)

1.奇数と偶数 舟に乗る組合せを観察すると、似たようなパターンがあることに気が付く。例えば、女性二人が乗船するパターンには、(女1, 女2),( 女2, 女3),( 女3, 女2)の三つがあった。このパターンは、女性二人が乗船するという意味においては同じで…

Haskellでクイズ「嫉妬深い男たち」を解く(2)

1.人工知能における幅優先探索 「嫉妬深い男たち」を解くための良いアルゴリズムは見つかっただろうか。アルゴリズムが見つかったとしても、クイズが与えられるたびに、それを解くためのアルゴリズムを見つけていたのではきりがない。人工知能の分野では、…

Haskellでクイズ「嫉妬深い男たち」を解く(1)

1.嫉妬深い男たち よく知られている問題だが、旅行をしている3組のカップルがいる。このカップルたちは、飛行機や車を使った旅行には飽きてしまったので、旧道が残る東海道を徒歩で旅行していた。それぞれのカップルは仲は良いのだが、唯一の欠点は、どの…

ライプニッツの公式から円周率を求める

1.円周率を求める ライプニッツは一七世紀の哲学者、数学者、科学者であり、政治家、外交官でもあった。彼は、ドイツ東部のライプチヒの出身である。Haskellを学んでいる人であれば、モナドという言葉を知っていることと思うが、哲学用語でのモナドという…