2012-07-11

次は・・・SICP?


LINK
コックス
ガロワ理論(下)
コックス「ガロワ理論」が最終15.5節で詰まっている。
というか、15.5節の演習問題3で、8.5節演習問題5の結果を使うようなのだが、
その8.5節演習問題5がどうもかっちりはまらなくて解けてない。
ボチボチやって早く代数幾何学やりたいなあ。
まあ15.4節まででもコックスの本はものすご~く楽しくて、
勉強になったのだけれど。
まさに「翼が生えたような」感覚を味わえた。
そういえば数学ガール「ガロア理論」よかった~。


とか言っている間に、仕事のほうでC++プログラムの
パフォーマンス追求のために、テンプレートが必要になった。
LINK
結城浩
数学ガール
ガロア理論
まあそれはなんとかやったのだが、
コード組みながらなんとなく感じていたのは、

「STLのアルゴリズムで、ちょっと複雑なことしようとすると、
ファンクタ使って実装しないといけなくて、何か大げさ・・・」


「テンプレートちょっと踏み込むと複雑でよくわかんない・・・
てかアレキサンドレスク変態すぎww」


「C++11で新しく加わった機能には、何がしたいのか、
全然わからないのもあるなあ・・・」
LINK
アレキサンドレスク
Modern C++ Design

という、多分見る人が見たら
「そんな低レベルでよくプログラム組んでんなヘタクソ」と言われそうなことで、
要するに自分の無知とスキル不足を感じていた。

変態アレキサンドレスクの中で、コンパイル時のテンプレートについて、
「コンパイル時に行われるすべての計算処理は、
値の変更を行うことが出来ない関数型言語を思い出させるような
テクニックに頼らなければならない」(3.5節)とあって、
関数型言語?なにそれおいしいの?と今更思って調べてみると、
「あーなんか最近雑誌でHaskellとか名前は見るなあ」とは思ったが、
雑誌記事とかウィキペとか読んでも何に使えるのか見えない。

関数型言語がなんかまあ流行りではあるみたいなので、
LINK
エイブルソン,
サスマン & サスマン
計算機プログラムの
構造と解釈 (SICP)
ちょっと覗いてみるかと、この分野じゃバイブル扱いらしい、
「計算機プログラムの構造と解釈」いわゆる「SCIP」を、
適当に興味を引いた演習問題を、初体験のSchemeを勉強しながら
実装していっていたら、この本すげえ。

「なんとなく意識していたが自分の中で明確になっていなかった発想」
「出来るのは知っていたが使ったことはない発想」
「眼から鱗の、考えたこともない発想」

が入れ替わり立ち代り、これでもかと高密度・大迫力で迫ってくる。
まだその迫力に気圧されて、頭の中でまとめられてないけどw

LINK
サッター
Exceptional C++
Schemeに慣れなくて、いや新発想に慣れなくて、
つまづきつまづき今は第3章を読み進めている。
が、ふつふつと湧き上がるのは、


「この演習問題を関数型言語的発想で、C++で実装するにはどうするか?」


という気持ち。
今まで普通に使っていたC++98ではすごく面倒そうだが、
C++11の新機能がなんか使えそう。
よくわからなかったC++11の新機能って、
関数型言語的なことがやりたかったのか。
いやまあboost使いにはずっと以前から知られてたことみたいだけど、
boost使ったことないのでよく知らんかった。
この度めでたくC++標準にいろいろ入ってきたので使ってみたいなあ。
LINK
メイヤーズ
Effective C++

SICPは計算機科学ではすごく有名みたいで、演習問題の解説で
Schemeのプログラムが置いてあるサイトには事欠かないが、
C++11で実装するサイトはあまり無いようだ。
というわけで、C++11の練習も兼ねて、SICPの演習問題に対する、
C++11での例をちょこちょこ書いていけたらなと思う。
gccも4.7になって、C++11の主要な部分は
(実験的ながら)一応使えるみたいだし。

まあサッター先生やメイヤーズ先生に「めっ!」と言われそうな、
下手なプログラムも多くなるだろうが・・・。
あと代数学の勉強からの浮気なので、いつまで続くかわからないw
自分のコードをくぱぁと晒すのはとっても恥ずかしいんだもん。


どうも仕事で圏論が要りそうな見通しになってきたなあ・・・もっともっと勉強しないとなあ・・・。

0 件のコメント :

コメントを投稿