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

Project Euler (2)

全問制覇とか後 n 問とか言ってる人たちを尻目 (?) に見つつ、100 まで解きました。脊髄反射で実装しても解けない問題が増えてきました。 印象に残った問題は 78 と 94 。78 は、間違ってると知りつつ、数 GB のファイルを使って 4 時間くらいかけて DP しま…

品鶴線徒歩

昨日は品鶴線を歩きました。わかりやすく言うと湘南新宿ラインの大崎〜西大井 (通称品鶴線蛇窪支線) と横須賀線の品川〜西大井〜新川崎〜鶴見です。大崎〜西大井は 10 時半から 30 分ほどで歩き、線路の距離は約 2 km 、歩いた距離は 2.9 km です。品川〜鶴…

最近の Ruby 処理系の話

酒井さんに教えてもらって、第 341 回 PTT に行ってみました。PTT 初参加。とても面白かったです。4 つの話題がありました。 最近の Ruby 処理系の話 追加された文法とか、ダイエットの話とか。pseudo keyword って知らなかったー。callee 側の定義もあった…

Ruby テスト改善運動進捗 (2)

最近さぼり気味ですが、hash.c (Env 関連含む) 、time.c 、proc.c 、re.c を書いて、現在 80.42% です。目標には到達。ただ、テストが書きにくい M17N 関係のソース (enc/ ディレクトリ以下) を計算に入れてなくて、これらも入れると 78.98% です。鬼車 (reg…

Project Euler

流行みたいなのでやってます。今のところ 1 から 74 まで。簡単な問題からだんだん難しくなっていくのが中毒っぽい。面倒なだけのくだらない問題が少ないのもいい感じ (54 とか例外は多少あるけど) 。あとプログラミングコンテスト的には、問題文が短くてス…

ゴルフ練習場の危険性

打ちっぱなしのゴルフ練習場 (コードのゴルフではなく普通のゴルフ) を見ていて思ったのですが、打球と打球がぶつかって打者の方にボールが戻ってくることはありえるでしょうか。地面や障害物に当たった場合、真上に打った場合、向かい風の場合は無視します…

みなとみらい線徒歩 (後編)

最後に、東急東横線から直通のみなとみらい線を横浜から元町・中華街まで歩きました。18 時過ぎから 21 時前までの約 1 時間半。線路の距離で 4.1 km 、道のりで 5.3 km 。短い路線ですが、海の下を走っていたり歩道橋のために迂回したりしたので思ったより…

東急東横線徒歩

東急東横線は渋谷から横浜まで一気に歩きました。10 時前から 18 時前までの約 8 時間。線路の距離で 24.2 km 、道のりで 28.1 km 。中目黒駅から自由が丘駅までは、下町のようだけど雰囲気はそんなに悪くないという、不思議な区間でした。武蔵小杉駅は南武…

東急田園都市線徒歩 (後編)

昨日はまず、田園都市線の続きを歩きました。二子新地から渋谷まで。6 時前から 9 時までの約 3 時間。線路の距離で 10.1 km 、道のりで 11.1 km 。スタートした時はまだ日が昇ってなくて、朝焼けの多摩川がとても綺麗でした。二子玉川駅より先は地下駅ばっ…

対日本人バグレポの心構え

日本人開発者にバグレポを読んでもらえる確率、そして返事がもらえる確率を上げるためのコツ。 1. コードで語る。 自然言語は人類の叡智ですが、敵でもあります (英語に限らない) 。共通言語であるコードで語りましょう。 例: ruby-core:14696 2. 短いコード…

Rubyfuck ライブラリ

Rubyfuck というライブラリを作ってみました。以下の美しい Ruby のプログラムは Hello, world! を出力します。 Rubyfuck.new do |_| _.+_.+_.+_.+_.+_.+_.+_.+_.+_.+_[ _.>_.+_.+_.+_.+_.+_.+_.+_.>_.+_.+_. +_.+_.+_.+_.+_.+_.+_.+_.>_.+_.+_.+_.>_.+_.<_.<_.<_.<_.-_]._.>_.+</_.<_.<_.<_.-_]._.>…

de Bruijn index の評価器

unlambda から brainfuck への変換器を作ろうしていましたが、なぜか de Bruijn index のラムダ式の評価器を Haskell で作った時点で飽きました。そんな残骸ですが、メモ代わりに公開します。de Bruijn index でも代入の定義はやっぱり複雑なんですね。 de B…

ピリオドを足せの続き

こないだの問題ですが、「if の前」が正解でした。 s = "Hello, world!" ("aa".."zz").each do |n| class << s; self; end.class_eval do define_method(n) {|x| self } end end puts s. if false Ruby では予約語も名前に使えるよ、という小ネタでした。回…

Unlambda インタプリタを書いてみた

西尾泰和さんの最もタメになる「初心者用言語」は Unlambda!を見て、unlambda の初心者になるためにインタプリタを Ruby 1.9 で書いてみました。d (delay) と入出力がなければとてもシンプル。各命令を定義通りに Proc に変換するだけ。いやあ、-> 記法はキ…

ピリオドを足せ

以下のプログラムに . (ピリオド) を 1 つ加えて Hello, world! を出力させなさい。 s = "Hello, world!" ("aa".."zz").each do |n| class << s; self; end.class_eval do define_method(n) {|x| self } end end puts s if false ふと以下の有名な数式 (?) …

Ruby テスト改善運動進捗

enum.c 、enumerator.c 、numeric.c 、pack.c 、range.c 、file.c の網羅的なテストを追加して、現在のカバレッジは 76.34% です。そろそろ伸びが鈍くなってきました。enum.c だの range.c だののデータ構造はテストが自然とポータブルになって楽だったんで…

東急田園都市線徒歩 (前編)

東急田園都市線を中央林間駅から二子新地駅まで歩いてきました。線路が 21.4 km 、道のり 29.9 km 、9 時から 18 時前までの 9 時間弱。おもいきり多摩丘陵なので、歩くのは大変でした。20 m 程度のアップダウンが続く感じ。沿線は多摩田園都市で、非常に雰…

こどもの国線徒歩

東海道線がやりかけですが、昨日は横浜高速鉄道こどもの国線を歩いてきました。線路で 3.4 km 、道のり 4.1 km 、7 時半前から 8 時半前までの 1 時間。当初は田園都市線だけ歩くつもりで、こどもの国線は存在すら忘れていました。が、中央林間駅に向かう電…