2009-12-01から1ヶ月間の記事一覧

ボクがObj.magicを使うシチュエーション

要約 とりあえずコンパイルを通したいときは、Obj.magicを使うと便利だよ でも、Obj.magicを使ったコードを公開したり、レポジトリにコミットしたらダメだよ Obj.magicがないと困るとき シグネチャ付きのモジュールを書くとき、先にシグネチャを書いたりしま…

0x10と010をパースしてみよう

30分プログラム、その714。0x10と010のパースをやってみました。 Scalaは気軽にパーサ・コンビネータが使えるからいいよね。これを正規表現でやってたら、死んでた気がする。 使い方 scala> Number.parse("0x10") res0: Int = 16 scala> Number.parse("010")…

tig.rbで公式RTが使えるようになりました。

要約 tig.rbの最新版で、公式RTが使えるようになったから、みんなもRTしまくればいいと思うよ。 tig.rbってなに? tig.rbはid:cho45さんの作っているTwitter IRC Gatewayです。 irssiなどのCUIで動くIRCクライアンと組み合せると、CUIだけでTwitterを使えるの…

年齢の計算

30分プログラム、その713。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_246にインスパイアされて、年齢を計算する簡単な式を実装してみます。 Schemeは暗黙に文字列を数値に変換してくれないので、awkやPHPほど簡単な式ではありません。 使い方…

今日の日付をクリスマス イブイブ...の形式で表示する

30分プログラム、その712。今日の日付をクリスマス イブイブ...の形式で表示してみます。世間には、23日のことをクリスマス・イブ・イブと呼ぶ風習があるそうです。もっとすごいのになると、クリスマス・イブ・イブ・イブ・イブとかもあるそうです。 世間の…

OCaml経験値

30分プログラム、その711。TwitterでOCaml経験値なるもので盛り上っていました。 Ken Wakita@kwakita ML 経験値 = セミコロン数/ファイルサイズ RT @camlspotter: 何となく ML に移行してきた人が書いた ref を山程使ったコードとか、見る機会があると、心配…

Bitmapを書き出してみよう

30分プログラム、その711。Bitmapを読んでみよう - みずぴー日記に書き出し機能をつけてみました。 これで、画像処理で遊べるぜ。 readがBinary -> Bitmapなので、writeはBitmap -> Binaryにしたほうが美しいけれども、オフセットの調節などが難しかったので…

Data.Graphを試そう

30分プログラム、その710。Haskellでグラフを扱いたかったので、Data.Graphを試してみました。mkGraphの返すグラフの型が、具体的な型ではなく、grになっています。 *Main> :t mkGraph mkGraph :: (Graph gr) => [LNode a] -> [LEdge b] -> gr a b これはこ…

gitのアトリビュート設定をするとTeXのdiffが見やすくなるよ

git diffをすると、前回コミットしたときからのdiffを出してくれます。で、各差分(ハンク)ごとに、変更範囲も教えてくれます。でも、正直なところ、n行目周辺が変更されたと言われてもよく分かりませんよね。そこで、.gitattributesに *.tex diff=texと書い…

n文字の文字列を全部出力するコマンド

30分プログラム、その709。n文字の文字列を全部出力するコマンドを作ってみました。ふと、2文字のTwitterIDが空いていないか調べてみたくなりました。で、そのための準備として、aa、ab、...、zzという文字列を生成するコマンドを作りました。あとは、これを…

油売り算(1)

30分プログラム、その708。昔の日記をあさっていたら、http://karetta.jp/article/blog/ll-spirit/033840が解けてなかったので、再チェレンジ!が、前回挫折しただけあって、なかなか難しい。とりあえず、後で必要になるだろう型を定義しました。続きはまた今…

yesコマンド

30分プログラム、その707。yesコマンドを作ってみた。 yesコマンドというのは、延々とyesを出力し続けるコマンドです。一般的なUnixシステムならインストールされているはずなので、ターミナルでyesと打てば使えるはずです。 非常に簡単に作れちゃうんですが…

数字当てゲーム

30分プログラム、その706。ヒット&ブローという数字当てゲームを作ってみました。 元々は二人用のゲームで 互いに4桁の数字を決める お互いに4桁数字を言い合う 場所と数字が一致すればヒット、数字だけがならボールと答える というルールです。最初、ゲーム…

「Haskellで副作用のあるプログラムを作れることをどうやって説明したらいいの?」まとめ

発端 mzp「Haskellって副作用ないのにどうやってゲームとか作るの?」って質問にうまく答えれない。IOモナドのおかげで、副作用がなくても副作用があるプログラムが作れるんです、って言っても意味が分かんないよねlinkとTwitterでつぶやいたら、いろんな人か…

vectorを使ったスタック

30分プログラム、その706。Gaucheのvectorの使い方を調べるついでに、スタックを書いてみました。 gacuhe.arrayよりも使いやすいね。 使い方 (define s (make-stack 10)) (stack-push s 1) (stack-push s 2) (stack-push s 3) s (stack-top s) ;; => 3 (stac…

修論のためのLaTeX設定

そろそろ修論を書こうかと思ったら、いつのまにかLaTeXやEmacsの設定をしてました。こういう日もあっていいよね。 要約 hyperrefパッケージを使うと、目次をクリックできるようになるよ colorパッケージを使うと修正点を分かりやすくできるよ anything.el + …

Pythonでsl

30分プログラム、その705。前にcursesみたいにターミナルの任意の位置にテキストを出す関数 - みずぴー日記でcursesを使わずに端末の好きな位置に文字を出せるようになったので、slを作ってみました。 Perlで使っていた\eがPythonでは使えなかったので、hi_s…

MacPortsでdeactiveなportを削除するスクリプト

追記: port uninstall inactiveでできます。 追記2: port uninstall -uでもできます。30分プログラム、その704。MacPortsでdeactiveなportを削除するスクリプト。 MacPortsを長い間使っていると、古いportがたまってきます。 # (active)以外が古いport $ por…