2007-04-01から1ヶ月間の記事一覧

Ng 1.5 beta1: ファイル入出力がshift-jisの時、改行コードをCRLFにするパッチ

http://tomato.sakura.ne.jp/~amura/ng/ 設定では変更できないようなのでパッチ作成。 --- fileio.c.org 2007-04-05 00:39:21.671875000 +0900 +++ fileio.c 2007-04-05 01:26:49.015625000 +0900 @@ -131,6 +131,7 @@ #endif /* KANJI */ lp = lforw(lp); i…

末尾再帰をwhileに

function fib(a, b) { return (a > 10) ? a : fib(b, a+b); } function fib2(a, b) { var _a; while (a < 10) { _a = a; a = b; b = _a + b; } }

racc: JSONパーサ

raccの練習ってことで、JSONのRFCを見ながらJSONパーサを作ってみた。追記 yyparseを使うように修正。 こっちのほうがいい感じ。追記2 って、よくみたら、エスケープされた文字列を元に戻してない… 後で直そう。 class JsonParser options no_result_var ru…

読了: Rubyを256倍使うための本 無道編

Rubyを256倍使うための本 無道編作者: 青木峰郎出版社/メーカー: アスキー発売日: 2001/02メディア: 単行本購入: 4人 クリック: 44回この商品を含むブログ (57件) を見るとりあず読了。raccの話から始まって、拡張ライブラリの作成などなどなど。 サンプルを…

Cygwinでscreen-4.0.3

screen-4.0.3に縦分割パッチを充てて、Cygwinにインストールしようとしたら、ごちゃごちゃと他のパッチも充てる羽目になったので、まとめときます。コピペのパッチを充てるときは「patch -l」としておいたほうがよいかも。 1.screen-4.0.3と非公式パッチを取…

link: 拡張ライブラリ作成関連

LoveRubyNet Wiki: RubyExtensionProgrammingGuide Ruby 遊び / 拡張 C ライブラリを作ってみる Ruby拡張ライブラリ Ruby拡張ライブラリ作成チュートリアル

Ngの対応×2

忘れないようにメモ。 ctrl-sが効かない! screenのフロー制御の問題でした。 .screenrcに「defflow off」を追加。 バックスペースが効かない! 設定の問題でした。 .ngに「(bsmap-mode)」を追加。

問題1.16

僕の解答 (define (even? n) (= (remainder n 2) 0)) (define (expt b n) (expt-iter b n 1)) (define (expt-iter b counter product) (cond ((= counter 0) product) ((even? counter) (expt-iter b (- counter 2) (* b b product))) (else (expt-iter b (-…

問題1.17

僕の解答 (define (even? n) (= (remainder n 2) 0)) (define (double n) (* n 2)) (define (halve n) (/ n 2)) (define (times a b) (cond ((= b 0) 0) ((even? b) (times (double a) (halve b))) (else (+ a (times a (- b 1)))))) こんな感じかな? 解答…

問題1.18

僕の解答 (define (even? n) (= (remainder n 2) 0)) (define (double n) (* n 2)) (define (halve n) (/ n 2)) (define (times a b) (times-iter a b 1)) (define (times-iter a b product) (cond ((= b 0) 0) ((even? b) (times-iter (double a) (halve b)…

問題1.19

僕の解答 ギブ…orz 解答例 http://www.csus4.net/hiki/SICPReading/?Fujitani 所感 うー、ぜんぜんダメダメ。 とにかく2回使ってみればよかったかなぁ…