┏━━━━━━━━━━━━━━━━━━━━━━━━━━■
┃ ■┃
●┃● ● オ ブ ジ ェ ク ト 倶 楽 部 ■ ┃
┃ ■ ┃
┗━━━━━━━━━━━━━━━━━━━━━━■━━━┛
No.219 2008/01/23
■ I N D E X
┃
┣【Topics】IT Pro EXPO 2008で事務局長がミニトーク(2/1)
┣【プログラミング】ゆるーいHaskell [16]
┗【キーワード】知ってるようで分からないビジネスワード勉強会 [39]
〇━━━━━━━━━━━━━━━━━━━━━━━━━━━T o p i c s━
〇 IT Pro EXPO 2008で事務局長がミニトーク(2/1)
〇 〇━━━━━━━━━━━━━ ━━・
主宰の平鍋と、事務局長の天野が翻訳に携わった『リーン開発の本質』がいよ
いよ発売。これに関連したミニトークが行われます。
◇日 時:2008年2月1日(金) 15:00〜15:30
◇テーマ:リーン開発はソフトウエア開発をどう変えるか?
◇会 場:東京ビックサイト
詳しくはこちらから。
http://itpro.nikkeibp.co.jp/expo/organizer/main.shtml#pabi
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【プログラミング】ゆるーいHaskell [16]
ちょっと遅くなってしまいましたが、あけましておめでとうございます。西川
です。今年もよろしくお願いします。
さて、もう去年のことになってしまいましたが、GHC6.8がリリースされまし
た[*1]。折角なのでこれ以降は特に断りがないかぎり、GHC6.8.xを前提として
説明をします。
今回はStateモナドについてお話します。
CやJavaなどみなさんが普段使っているようなプログラミング言語には、大域変
数と呼ばれている変数が存在していることと思います。ちなみにこの場合の大
域変数というのは、グローバル変数、クラス変数、インスタンス変数などと呼
ばれているものを想定しています。大域変数には計算の途中の状態を保持させ
ることができます。
rubyで単純なプログラムを書いてみました。
----- rubyプログラム -----
@var = 0
def add1
@var += 1
end
3.times {add1}
puts @var
----- rubyプログラム ここまで-----
このプログラムをsample1.rbという名前で保存して、rubyコマンドで実行して
みます。
> > ruby sample1.rb
3
add1というメソッドが呼ばれる度に、varという名前の大域変数(今回の例では
インスタンス変数)をインクリメントしています。3回add1メソッドを呼びだし
たので、最後にvarを標準出力に書きだすと、"3"と表示されています。
Haskellにはこのような大域変数という存在がありません。そのような存在を許
すと参照透明性が破られてしまうからです。しかしこのStateモナドを使うとこ
の「状態」をエミュレートすることができます。"エミュレート"といいますの
は、それが本当の「状態」ではないことを意味しています。前置きが長くなっ
てしまいましたが、ghciを起動してStateモナドについて調査してみましょう。
$ ghci
> > :m + Control.Monad.State
> > :i MonadState
class (Monad m) => MonadState s m | m -> s where
get :: m s
put :: s -> m ()
-- Defined in Control.Monad.State.Class
instance (Monad m) => MonadState s (StateT s m)
-- Defined in Control.Monad.State.Lazy
instance MonadState s (State s)
-- Defined in Control.Monad.State.Lazy
2つ目のinstance宣言に注目してください。型クラスMonadStateのinstanceとし
て(State s)が宣言されていることがお分かりになるかと思います。
> > :i State
newtype State s a = State {runState :: s -> (a, s)}
-- Defined in Control.Monad.State.Lazy
instance Monad (State s) -- Defined in Control.Monad.State.Lazy
instance Functor (State s) -- Defined in Control.Monad.State.Lazy
instance MonadFix (State s) -- Defined in Control.Monad.State.Lazy
instance MonadState s (State s)
-- Defined in Control.Monad.State.Lazy
Stateはnewtypeとして定義されていてメンバにrunStateという関数を持ってい
ると読めます。何やらちょっと難しそうですね。ちょっと趣向を変えて先に上
述のsample1.rb相当のプログラムをStateモナドを使ってHaskellで実装してみ
ましょう。
----- Haskellプログラム -----
import Control.Monad.State
add1 :: State Int ()
add1 = do
var <- get
put $ 1 + var
main = print $ execState (times 3 add1) 0
where times = (foldl1 (>>) .) . replicate
----- Haskellプログラム ここまで -----
このプログラムをSample1.hsという名前で保存して、ghciにロードして実行し
てみます。
> > :l Sample1.hs
> > :main
3
sample1.rbにそっくりなプログラムSample1.hsができました。add1関数に注目
してみてください。「状態」を取り出してインクリメントして、保存している
様に見えませんか?ここからが面白いところなんですが、ちょっと長くなってし
まいましたので今回はここまでとして、次回はこのSample1.hsとStateモナドに
ついてさらに解説します。(西川)
[*1] http://www.haskell.org/ghc/
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E008-15&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E008-15&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=E008-15&choice=2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ■━
■
┗【キーワード】知ってるようで分からないビジネスワード勉強会 [39]
「日経平均株価」
こんにちは、Hiroshiです。正月ボケからもさすがに復帰し、忙しい毎日を過ご
しています。皆様いかがお過しでしょうか。今週から、東京もやっと冬になった
感があり、ついに雪まで降り出しました。電車が遅れなくて一安心です。
さて、今回は、このメルマガテーマの初心に戻って、分かっているようで実は
知らないキーワードをご紹介できればと考えてます。最近、ニュースでこの話
題がない日はない、というくらい大騒ぎされている「日経平均株価」を取り上
げたいと思います。この意味って皆さんご存知ですか?なんとなく、言葉から
想像はできますが、「何なのか?」「それから何が分かるのか?」「何によっ
て移り変わるのか?」は改めて聞かれるとあまり分かっていませんでした。
それでは、始めます。
「日経平均株価」とは何なのでしょうか?それは、東証第一部上場銘柄のうち
取引が活発で流動性の高い225銘柄を選定し、ある平均方式を基にした計算方法
で修正平均を算出したもの。平均方式についてはここでは割愛するとして、
「22日午前の東京株式市場は、米景気後退懸念を嫌気する売りが殺到し、大幅
続落して始まった。日経平均株価は一時1万3000円を割りこんだ。」などと、
ニュースで報道されますが、この取引が活発な銘柄の平均株価の動きを見て、
市場動向の傾向を掴むのに使われています。
それでは、何によって移り変わるのでしょうか?考えてみたいと思います。
株価は「この会社は業績がよくて将来も期待できそうなので買いたい」と考え
る人が売りたいという人より多くいれば、株価は上昇します。このように需要
と供給の関係で決まるのですが。この需要と供給の関係を決めるのは、「買い
たい」「売りたい」という投資家の心理です。と言うことは、日経平均株価が
上がる時は将来を期待できる会社が多く(=景気がいい)、平均株価が下がって
時はその逆が分かるということです。更には、投資家の心理は、企業自身の成
績の他に、いろいろなものが複雑に影響します。外国為替相場、金利の変動、
政権交代、外国市場の影響、企業の格付け、自然災害、等。
日経平均ってどんなものか何となくわかると、見方も変わってきませんか?
日経平均の変動がこの要因なんだ、と分かってくると、経済ニュースを見てい
ても面白いものです。良く分かってなかった自分が恥ずかしくなりますが…
以上です。(hiroshi)
_______________________________________________________________________
この記事への評価にご協力をお願いします。
URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用
のブラウザに表示されれば投票完了です。
良かった:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=D001-38&choice=0
普通:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=D001-38&choice=1
イマイチ:
http://www.ObjectClub.jp/community/object_ml/estimate?vol=D001-38&choice=2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗【アンケート】気になるシステム業界 ホントのところ
今週は「初めて仕事で使った言語は?」のホントのところ。ずいぶん前ですが、
「初めて仕事で使った言語は?」オブラブのイベントのアイスブレイクで話し
てもらって、凄く盛り上がりました。読者の皆さんは年代も現場もそれぞれ違
うと思うんですが、こういうことから何か共通の話題やキーワードが出てくる
と面白いですね。ぜひ、職場の皆さんとも話してみてくださいね。
では、「初めて仕事で使った言語は?」
アセンブラ。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=0
COBOL、PL/Iなど。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=1
VisualBasic。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=2
C/C++。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=3
Java。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=4
Perl、PHPなど。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=5
仕事で書いたことがない。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=6
そのほか。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=7
それは秘密です。
http://www.ObjectClub.jp/special/kininaru/vote?vol=185&choice=8
ちょっと語らせて!
詳細をこのメールに返信ください!!
アンケート結果はオブジェクト倶楽部サイト上にて公開します。お楽しみに。
なお、前号「英語できますか?」の結果は公開中。ぜひご覧下さい。
⇒http://www.ObjectClub.jp/special/kininaru/vol184/PlonePopoll_results2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
■
┗編集後記
こんにちは、編集人です。石油に端を発し、食品や生活用品を中心にかなりの
品物の値上げが行われています。思ったよりも石油高騰の影響ってあるものだ
なとびっくりしています。何とかならないものですかねぇ…。実はこういうと
きにこそ、今までのお金の使い方を見直すいいチャンス。我が家ではいろいろ
と工夫が始まりました。不思議なことに、エコノミー(経済)について取り組ん
だらエコロジー(環境)に関心が高まりました。スイッチをこまめに消すこと、
捨てずに再利用すること。家族でこういうことについて話してみるのもいいも
のです。みんなでアイディアを出すことや、楽しく取り組んでゆくこと。思っ
た以上に豊かなものが手に入りました。
今週の強引な一言
** 立板に水(ことわざ)***
立てかけてある板に水をかけて流すように、流れによどみがない。また弁舌が
巧みということのたとえ。立て板に水がいつも良いわけではありません。引っ
掛かることが良い場合だってありますよ。例えば、テストとかね。
出典参考:故事ことわざ辞典 東京堂出版
(上田雅美)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━--■--●--■
● ご意見、ご感想は ⇒このメールに返信ください
〇 配信中止、アドレス変更は ⇒http://www.ObjectClub.jp/community/object_ml/help/
〇 免責事項、過去の記事は ⇒http://www.ObjectClub.jp/community/object_ml/
■ 発行:オブジェクト倶楽部 ⇒http://www.ObjectClub.jp/
■ 編集代表:平鍋 健児
Copyright (c)2003-2008 オブジェクト倶楽部. All Rights Reserved.
powered by Eiwa System Management, Inc.