Catalystのマニュアルをpdfで

Journal of Yanick (3196)

Catalyst manual into a cute little pdf

200ページ以上あるヨ

SICP 演算子に合成式

elispでSICP

SICPの問題1.5は演算子を合成式にできることを確かめましょうという問題なのだけど、elispだとどうもうまくいかない。

結局演算子をクォートして、consでリストにして作ったリストをevalで評価するようにしてみた。

defun a-plus-abs-b (a b)
 (eval (cons (if (> b 0) '+ '-) '(a b))))
a-plus-abs-b

(a-plus-abs-b 10 5)
15

(a-plus-abs-b 10 -5)
15

でもこれだと演算子を合成式にできるっていうイメージとまるでかけ離れてるなぁ

ProductName 計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン
ピアソンエデュケーション / 4830円 ( 2000-02 )


Gaucheもやっぱインストールしておくべきだろうか?

elispでSICP

ここのところちょっとやる気が出ないので、違うことをして気分転換してみている。

ProductName 計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン
ピアソンエデュケーション / 4830円 ( 2000-02 )


本のサンプルはSchemeだけど、これをelisp(Meadow)で解いていくことにした(たまにHaskellでも解いてみたいが)。

1.3 3つの数を引数としてとり、大きい2つの数の二乗の和

(defun sq (a b c) (+ (if (> a b) (* a a) (* b b)) 
                     (if (> b c) (* b b) (* c c))))

(sq 4 2 3)
25

(sq -1 -2 -3)
5

elispだとdefun,setqと分けるけど、Schemeだとどちらもdefineという同じ構文を使う。

大喜

湯島の大喜かデリーのコルマにするか悩んだのだが、結局大喜に行ってみた、

待つこと20分。スタンダードなラーメンを。

うーん、旨いって感じだが、醤油がちょっときつい。麺は細くていい感じ。量は少なめで正解。

とりそばがつけそばにすべきだったか?

MochiKitのイテレータとリストを行ったり来たり

MochiKitはIter([list])でイテレータにlist(iterator)でリストになる。

で、最近お気に入りのInterpreterで動かしてみた。

>>> l = [1,2,3,4,5,6,7]
[1, 2, 3, 4, 5, 6, 7]
>>> i = iter(l)
arrayLikeIter(...)
>>> i.next()
1
>>> i.next()
2
>>> i.next()
3
>>> list(i)
[4, 5, 6, 7]

なるほど牧場。

Meadowのブックマーク機能

フォントの設定変えようとしてC-右クリックとか色々やってたら見つけた。というか、知ってたけど今まで無視してた。最近フレームワークをいじることが多くてファイルを行ったりきたりするのでふと覚えてみようと思い立った。

ブックマークする

C-x r m

リストを表示する

C-x r l

この二つを覚えておけばいいだけ。てか便利すぎ、なんで今まで使わなかったんだろうか?

あと

C-x r b bookmark

で直接ブックマーク先を開けるけど、別に知らなくてもあんま困らん。

Mochikitをまなぶ

MochiKitのSignalとかイテレータの使い方がイマイチわからんなぁと思ってたがMochiKitのテストスクリプトを読めばいいことに気がついた。

あとinterpreterを使いまくってるのと、Firebugの便利さを理解した。

Turbogears(SQLObject)でSQLのトレース

DBICの場合はexport DBIC_TRACE=1でOKなんだけど、SQLObjectだと_connection.debugアトリビュートにTrueを突っ込むらしい。

Personってクラスがある場合

Person._connection.debug = True

これで実際に発行されるSQL文がトレースできる。

が、個々のクラスでこんなことするのは結構めんどくさいので、DBICみたいに環境変数で設定できないかと調べた。

seraphyの日記 - Pyhon2.5でSQLObjectを使ってみる

コネクションのURIにパラメータとして「Debug=True」と指定しているため、実行時にSQLObjectのトレース情報がコンソール画面に表示される。

URIにパラメータ渡すようにすればいいらしいので、環境変数がセットされているかどうかでURIにパラメータ渡すかどうか決めるように設定ファイルをいじればよいみたいだ。

TMTOWTDI

最新Pythonエクスプローラ眺めてたら、import thisって打つとpythonistaの心構えみたいなのが出てくることを知った。

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.

...

Namespaces are one honking great idea -- let's do more of those!

ほう。で、perlでも

perl --slogan

とかで

TMTOWTDI(There's More Than One Way To Do It.)

こういう風にスローガンが出ないもんかと探してみたけど、オプションにもモジュールにも見当たらなかった。

そういえば、最近言語の設計思想とかそんなのがなんとなく感じられるようになってきた。こんなのとか今読むと、タメになるなぁとか。もちろん去年のYAPCのトークも。

旬菜割烹なかだ

先月送別会で使った。

のれん

つくしもうまいね。

つくし

造りは、その週の初めに花膳いったから感動が薄かった。まぁ普通な感じ

盛り合わせ

ちらし寿司は桜つきで、風流だ

ちらしずし

帰りにちょっと寄っていくのにいい感じ。てか今度はぶらりと立ち寄る。