2008-11-01から1ヶ月間の記事一覧

unzipの一般化

30分プログラム、その410。http://d.hatena.ne.jp/hiloicoli/20081107/1226086092に影響を受けてunzip_nを書いてみる。要するに任意個の引数を取れるunzipといった感じらしい。もとは引数の数を制限できるようになっていたけど、大変そうなのでパス。 >>> un…

ifが返す値の型はそろえないとダメ

ABC

ABCプログラマのみなさん、こんにちは。ABCは文書化されていない仕様が多いことで有名ですけど、今日もひとつ新しい仕様を発見しました。 if式(?:演算子)が返す値の型は統一しないといけないみたいです。 ダメなやつ (if #t (f) 10) 自前の処理系であるHappy…

antでもmakeでも同じコマンドでビルドしたい

30分プログラム、その409。自動でビルドコマンドを選ぶスクリプトを書いてみた。 プロジェクトごとに使っているビルドコマンドが違うので、毎回makeを使うのか、antを使うのか、omakeを使うのか迷わないといけない。 これはあまりにも面倒なので、適切なビル…

HikiにWordPressのテーマを移植してみた

http://happyabc.org Scheme-abc用のドメインをとったので、Hikiを置いてみた。でも、やっぱりデフォルトのテーマのままだとほかのWikiと区別がつきにくて嫌。 でも、tDiaryのテーマで気に入ったやつが見つけれなかったので、WordPressのテーマのReduxを移植…

はてブのコメントを簡単表示

Operaのお気に入りに javascript:window.location='http://b.hatena.ne.jp/entry/'+escape(location.href); を登録して、cというニックネームをつけておく。あとは、好きなページでアドレスバーにcを入れるだけで、はてブコメントが表示できるよ。# いい加減…

各行ごとにコマンドを実行するスクリプト

30分プログラム、その408。ファイルの各行ごとに特定のコマンドを実行するスクリプトを作ってみた。例えば、 foo bar bazみたいなテキストファイルがあった場合、 $ each-line rm -rf < dir.txtとすると、全部消せる。(もっとも、この場合はxargsで十分だけ…

ErlangでWorker Threadパターン

30分プログラム、その407。Java言語で学ぶデザインパターン入門 マルチスレッド編のWorker ThreadパターンをErlangでやってみる。 Worker threadパターンは要するに、スレッドをいくつか作っておいて、それを使い回わすためのパターン。プロセス生成が軽いと…

Haskellでグラフ描画

30分プログラム、その406。Data.Graph.Inductive.Graphvizというおもしろそうなライブラリを見つけたので使ってみる。 要するにノードとエッジで構成された、いわゆるグラフ理論のほうのグラフを扱うためのライブラリらしい。ノードとエッジでグラフを作るの…

Python風の%をScalaで

30分プログラム、その405。Pythonの文字列の%をScalaでもやってみる。Pythonの%はこんな感じで、要するにsprintf。 >>> "Hi, %s" % "mzp" 'Hi, mzp' >>> "The %s is %d." % ("answer",42) 'The answer is 42.' implicit conversionを使って、Stringにメソッ…