2007-01-01から1年間の記事一覧

1.9 での each の返り値

p [1, 2, 3].combination(2).each {} #=> [1, 2, 3] p [1, 2, 3].combination(2).to_a.each {} #=> [[1, 2], [1, 3], [2, 3]] なんだか微妙。上の例は combination(2) の返り値 (Enumerator) を返してくれたほうが直感に合う気も。 p [1, 2, 3].combination(…

京急逗子線徒歩、京急久里浜線徒歩、京急本線徒歩 (前編)

土曜日に京急の南の方をやりました。新逗子から金沢八景までの京急逗子線 (路線距離 5.9 km / 道のり 7.0 km) と、三崎口から堀ノ内までの京急久里浜線 (13.4 km / 17.9 km) を歩いた後、京急本線を浦和から金沢八景まで (14.6 km / 17.9 km) を歩きました。…

fisheye view の計算式とプログラム

fisheye view とは、なんかインターフェイスの世界では常識っぽい、フォーカスとなる点を中心に座標をぐにょーんと引き延ばす方法です。日本語が不自由ですみません。要するにこういう変換です。 皇居あたりを中心に線路地図をぐにょーんと引き延ばしていま…

HSDL with GHC 6.6.1

Haskell の SDL binding である HSDL を GHC 6.6.1 でコンパイルするための手順メモです。 1. 必要なものをダウンロードします。 HSDL のソースコード、SDL のランタイムライブラリと開発ライブラリ (ヘッダとか) が必要です。 http://fxp.hp.infoseek.co.jp…

フィールドラベルの更新

フィールドラベルを持つ data 型の更新の文法がなんかださく感じます。 updateFoo g v = g { fooField = v } ラベルをパラメータ化できたら便利なのになあ。 update g f v = g { f = v } でもこれ、参照透明性を失うかな?よく考えてないけど。

グローバル変数のモジュール性

StateT が使えるようになったらグローバル変数みたいなものが簡潔に書けるのかなーと考えました。グローバル変数たちを集めた data 型を定義して、トップレベルは基本的に StateT GlobalVars IO () 型にする感じ。 module Main(main) where import Control.M…

猿でも持ち上げられるモナド

最近やっとモナドの持ち上げ方を理解した気分になりました。StateT + IO 限定で。State モナドを使って以下のようなコードを書いていたとき、 module Main(main) where import Control.Monad.State -- 階乗計算 fact :: State (Int, Int) Int fact = do (a, …

なんでもセミナー

情報科学なんでもセミナーの「Haskellがアセンブリになるまで」を聞いてきました。話者の中村さんは 3 週間ほどで GHC のソースコードを読んだそうです。発表もしっかりしていて、とても B3 とは思えませんでした。あと聴衆に shelarcy さんとか shinh さん…

余談

そろそろ鶴見線をやりたいと思っているのですが、出られない駅として有名な海芝浦駅が始末に困ります。うーん。

相模鉄道徒歩

昨日は相模鉄道を全部まとめて歩きました。二俣川から湘南台までの相鉄いずみ野線、厚木から相模国分信号所までの相鉄厚木線 (貨物線) *1 、海老名から横浜までの相鉄本線です。朝 7 時半に二俣川を出発し、夜 8 時半ごろ横浜に到着しました。線路の距離でそ…

千葉旅行

10/13 (土) はてっさんに誘われて、鉄道の日記念きっぷと房総半島横断乗車券を使って千葉をぐるっと回ってきました。小湊鐵道といすみ鉄道で千葉を横断し、外房線と内房線で回って帰ってくる感じ。途中、やや秘境駅の久我原駅と、竹岡ラーメン発祥の地に立ち…

77 駅スタンプ集め

中央快速線徒歩の終盤から、JR 東京支社管轄の全 77 駅に設置されているスタンプを集めてました。中央快速線徒歩では御茶ノ水と神田と東京を回収済みで、常磐緩行線徒歩では取手から北千住 (と南流山) までの駅、埼京線徒歩では浮間舟渡から大崎までが回収済…

埼京線徒歩

10/06 (土) に大宮から池袋経由で大崎まで、埼京線沿いを歩きました。朝 8 時半くらいから夜の 9 時半まで、13 時間。歩数も 70,000 歩を超えました。線路の距離で 36.9 km ですが、道のりでは 44.9 km でした。基本的に線路沿いを歩いたつもりなのですが、…

llahp その後

オレンジニュースとか Matz にっきとか www.textfile.org とかで取り上げてもらったおかげで、2000 件を超える有効回答が得られてしまいました。ありがとうございます。AHP の適用実験でこんな規模の事例はあまりないんじゃないでしょうか。知らないけど。デ…

mem.flush

飽きっぽさを発揮してしばらく書いてませんでした。あったことを一気に書きます。

llahp 開発秘話

30 問は結構多いので PHP を選択肢から外す案もあったのですが (選択肢が 3 つになれば 18 問になる) 、PHP 嫌いなのに PHP をオススメされる人がいるかもしれないので一応残しました。最初の問いを「あなたは PHP が好きですか?」にして、これが No なら選…

Lightweight Language AHP : おすすめ軽量言語診断

http://dame.dyndns.org/misc/llahp/30 問の質問に答えると、Perl 、Python 、Ruby 、PHP の中からあなたの価値観に合った言語を教えてくれる AHP です。各言語を以下の 4 つの評価基準で評価してください。 実行速度 コードを高速に実行できる。 開発環境 …

AHP について

Analytic Hierarchy Process (階層分析法) という意思決定手法があります。 複数の物を複数の評価基準で評価すると、混乱しがちです。例えば車を買うとき、3 つの車種から、安全性、かっこよさ、燃費の 3 つの基準で選ぼうとすると、迷ってしまいます。AHP …

カプレカの定数

6174 はカプレカの定数というそうで、各桁の数字を大きい順に並べた数字と小さい順に並べた数字の差が自分自身になる数字だそうです (7641 - 1467 = 6174) 。(ぞろ目以外の) 任意の 4 桁の数字に対してこの操作を繰り返すと必ず 6174 になるそうです。graphv…

常磐緩行線徒歩

先週の日曜に、取手から北千住まで常磐線沿いを歩きました。朝 8 時半から夜 8 時までの 11 時間半。線路の距離で 32.2 km 、道のりで 40.0 km 。茨城県から千葉を突っ切って東京まで歩いたことになります。今回はてっさんも参加。利根川、江戸川、中川、荒…

Hash のハッシュ値

Ruby はいつまで立っても知らない仕様・挙動に出会える味わい深い言語です。 今回は ruby 1.8 の Hash のハッシュ値が (内容物に関係なく) インスタンスだけに依存して決まることを知りました。知らなかったのかよ、というツッコミはなしで。 # 1.8 x = { :f…

中央快速線徒歩

先週の土日は二日連続で、高尾から東京まで中央線沿いを歩きました。土曜日は朝 8 時半から夜 8 時半までかけて高尾から阿佐ヶ谷まで、日曜日は朝 10 時半から夜 18 時までかけて阿佐ヶ谷から東京まで。線路の距離で 53.1 km 。道のりは前半が 44.2 km、後半…

quine 変種あれこれ

quine は極めてる人がいっぱいいるので quine の変種を考えてみました。あんまりいいのを思いつきませんでしたが、誰かがもっと面白いのを考える種になるといいなと思いつつ晒します。 Python -> Ruby -> Perl -> Python .. と回るプログラム。quine っぽい…

京王井の頭線徒歩

土曜日はゴルフ会が渋谷であったので、吉祥寺から渋谷まで京王井の頭線沿いを歩きました。朝 10 時から夕方の 15 時くらいの約 5 時間。線路の距離で 12.7 km 、道のりで 15.9 km 。住宅街の真ん中で、道が細く入り組んでました。井の頭線の見所は、井の頭公…

brainfuck to 数学ゴルフ

数学ゴルフが終了したようです。僕の解答も niha さんのと同じです。それはともかく、数学ゴルフの言語の入出力拡張版*1を提案されていました。とりあえず turing 完全であることを確かめるため brainfuck インタプリタを書こうと思ったのですが、面倒だった…

ゴルフ会

今日は吉祥寺から渋谷まで京王井の頭線沿いを歩いて*1、ゴルフ会に参加しました。おつかれさまでした。今までにないくらい濃い話がたっぷりで、大変楽しゅうございました。特に印象に残ったのは、niha さんが想像以上に若かったり、YT さんが知り合いの知り…

Ruby と抽象構文木

PEG を作ってて思ったこと。Haskell や OCaml に比べて、Ruby は抽象構文木を扱うのがすごく苦手だと思います。一つの大きな理由はパターンマッチがないことですが、それだけでは無いような気がします。

Ruby で packrat parser

packrat parsing というパーサの実装方法があります。特徴は、再帰下降パーサ + 無限先読み可能 + memoize*1 という感じです。僕が下手な説明をするより、英語わからなくても Haskell わかればわかる素晴らしいスライドやPappy (reference implementation) …

東急多摩川線徒歩

中目黒の近場の短い路線と言うことで、多摩川から蒲田まで東急多摩川線沿いを歩きました。夕方 17 時半から 19 時半まで 2 時間弱。線路の距離で 5.6 km 、道のりで 6.6 km 。短い路線なのに道のりが長い理由は謎です。ほとんど線路沿いを歩いたはずなのです…

日比谷線徒歩

最近こればっかりですが、昨日は中目黒から北千住まで日比谷線沿いを歩きました。朝 9 時すぎから夕方の 16 時前まで 6 時間半。線路の距離で 20.3 km 、道のりで 23.4 km 。道のりが長めなのは、銀座線と同じように今回も各駅で改札まで降りるルールを採用…