プログラミング

close再考

昨日書いた参照のあるなしでcloseするか否かを決める案は気持ち悪い.見てくれは変わらないのに,代入の有無で動作が変わるのはおかしい気がしてきた.さてどうするのがよいのか.やっぱりRubyの動作が一番自然なんだろうか.

遅延評価とかmemoizeとか

遅延評価の話は非常に面白そうなので後でかく.

close

Rubyではブロックとイテレータを用いてファイルを開くと, File.open('filename') {|file| file.each {|line| p line} } [.. ファイル内容の出力 ..] => #<File:file.io (closed)>となり,ブロックを抜けた時点でファイルは勝手にcloseされる.Ioではどうなるのか調べてみた. File </file:file.io>…

[http://fresh.homeunix.net/~luke/jscm/repl.html:title=Interactive Scheme]

JavaScriptで書かれたSchemeインタプリタ.これをやろうと思い立つところが一番素晴らしい.

言語が思考を規定する

学部生の時に「言語は思考を規定する」といった趣旨の講義を受けたことがある.どこかの国の人々は虹が2色に見えるらしい.それはその人々の話す言語に色を表す単語が2つしかないからという.つまり,人の思考は言語に依存していて,言葉に表せないものを認…

勢いを増すRuby

O'Reilly RaderによるとRubyの書籍の売り上げがPythonのそれを越えたらしい.海外ではPerlに次ぐスクリプト言語といえばPythonだったのが,ここに来てRuby on Railsの人気でRubyが急上昇している.やっぱりRailsも弄っておかなきゃならなそうだ.

myReverse2

反転されたリストを返すmyReverseは以下のようにもっと簡潔に書ける. myReverse2 :: [a] -> [a] myReverse2 [] = [] myReverse2 (x:xs) = myReverse2 xs ++ [x] ++が使えるのでわざわざconsする必要がないということ.Common Lispの (defun my-reverse2 (x)…

D-BUS-0.60

D-BUS-0.6がリリースされた.RequestName関連で大きな変更があった模様.

Haskell入門追加

Haskell のお勉強

リスト操作

Common Lispの基本的なリスト操作をHaskellで書いてみた. まずはCommon Lisp. (defun my-length (x) (if (null x) 0 (+ 1 (my-length (cdr x))))) (defun my-append (x y) (if (null x) y (cons (car x) (my-append (cdr x) y)))) (defun my-reverse (x &o…

Haskell入門

SICPのサンプルプログラムや練習問題はSchemeで書かれているが,その練習問題をHaskellで書いてHaskell,Scheme,プログラムの基本の3つをいっぺんに学んでしまおうというページを発見した.このページだけでなくトップページから辿れる他のページも興味深い…

Scheme入門

独習Scheme三週間で一通りの文法はチェックできる.

Web Frameworks

PythonにおけるRuby on Railsみたいなものがあるらしいのでメモ. - Django - TurboGears

Bloglines Web Services

feeds一覧をとってくるときに行う認証はBasic認証しかできないらしい.www.bloglines.comからWebのインタフェースで普通にログインする場合はhttpsが使えるので大丈夫そうだけど,rpc.bloglines.comの方はhttpsが使えないみたい.これはセキュリティ上問題が…

Common Lisp

Common Lispの話.やっと&optionalの使い方を理解した.これを使うとreverseのような関数を簡単に書くことができる.Paul GrahamのOn Lispから引用すると,反転したリストを返す関数good-reverseはlabelsを使って以下のように書ける. (defun good-reverse (…

PyBloglines

PyBloglinesでPythonからBloglinesのAPIを利用できる.コメントを入れてもたった122行のモジュール.使ってみよう.

読書

今,オブジェクト指向とコンポーネントによるソフトウェア工学―UMLを使って (Object Technology Series)作者: ペルディタスティーブンス,ロブプーリー,Perdita Stevens,Rob Pooley,児玉公信出版社/メーカー: ピアソンエデュケーション発売日: 2000/09メディ…

Common Lisp

Common Lispの実用的な使い方を取り上げた本「Practical Common Lisp」がWebで公開されている.ボリュームが結構あるので読むのには時間がかかりそうだが,講義だけではさっぱり思いつかなかったCommon Lispの実用的な使い道が書いてありそう.

AjaxのIME

Ajaxを使った日本語Full IME.Operaではキーバインドが被っているため,設定変更しないと使えない.JavaScriptを見るといろいろ勉強になりそう.Blogにはmigemo風インクリメンタル検索がついている.似たような試みとしてGoogleサジェストがあるが,こちらは…

PyGTK + Glade

GNOME/GTK+界隈ではGladeを使ってGUIアプリを書くのが楽ちんなようだ.ただ,Gladeのインタフェースはどうも使いにくい.Gladeと非互換な部分も多少あるが,Gazpachoがおすすめ.Gladeを使った簡単なサンプルアプリを見る限りでは,コールバックの接続方法が…

GTK+ TreeView Widget

GTK+のTreeViewをサンプルプログラムのみで理解しようとして挫折した.ちゃんとTutorialを読まないと駄目らしい.誰か日本語に翻訳してください.

Iteratorパターン・Adapterパターン

オブジェクト指向といえばデザインパターンではないかということで,TECHSCOREを利用させてもらう.CはもちろんJavaも面倒だよ病なのでPythonでがんばろう.今日の収穫: Iteratorパターンとは… 集約オブジェクトが基にある内部表現を公開せずに、その要素に…

エクストリームな風景

今日は以前から気になっていたXPの話について自分なりに調べてみた.エクストリームプログラミング エピソードを参考にしながら実際に手を動かす.ボブ・コスとボブ・マーティンがこのイスに座りながら仲良くペアプログラミングをするのである.何とも微笑ま…