Catalyst manual into a cute little pdf
200ページ以上あるヨ
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
でもこれだと演算子を合成式にできるっていうイメージとまるでかけ離れてるなぁ
Gaucheもやっぱインストールしておくべきだろうか?
ここのところちょっとやる気が出ないので、違うことをして気分転換してみている。
本のサンプルはSchemeだけど、これをelisp(Meadow)で解いていくことにした(たまにHaskellでも解いてみたいが)。
(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という同じ構文を使う。
16042007 javascript 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]
なるほど牧場。
16042007 Meadow
フォントの設定変えようとしてC-右クリックとか色々やってたら見つけた。というか、知ってたけど今まで無視してた。最近フレームワークをいじることが多くてファイルを行ったりきたりするのでふと覚えてみようと思い立った。
ブックマークする
C-x r m
リストを表示する
C-x r l
この二つを覚えておけばいいだけ。てか便利すぎ、なんで今まで使わなかったんだろうか?
あと
C-x r b bookmark
で直接ブックマーク先を開けるけど、別に知らなくてもあんま困らん。
15042007 javascript mochikit
MochiKitのSignalとかイテレータの使い方がイマイチわからんなぁと思ってたがMochiKitのテストスクリプトを読めばいいことに気がついた。
あとinterpreterを使いまくってるのと、Firebugの便利さを理解した。
13042007 Python turbogears
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にパラメータ渡すかどうか決めるように設定ファイルをいじればよいみたいだ。
最新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のトークも。