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

ついでに

はてなダイアリーが ALPSLAB route に対応したとのことなので、せっかくだから全部貼り付けてみました。たいてい縮尺を最大にした状態 (一番細かい様子がわかる縮尺) で道を描いてます。違う縮尺だと道がずれることがあるようです。

湘南モノレール江の島線徒歩

根岸線のついでに、大船から湘南江の島まで湘南モノレール江の島線沿い (というかモノレールなので下) を歩きました。夕方の 5 時から 夜の 7 時過ぎまで、約 2 時間。線路の距離で 6.6 km 、道のりで 7.7 km くらい。この沿線歩きは以下の理由でかなり危険…

根岸線徒歩

今日は横浜から大船まで根岸線沿いを歩きました。朝 9 時から夕方の 17 時前まで 8 時間弱。線路の距離で 22.1 km 、道のりで 22.6 km くらい。距離だけで見るとそこまで大したことなく見えるんですが、実際にはかなり大変でした。丘陵地帯であるためアップ…

正規表現と IO、正規表現とリフレクション、正規表現と PEG

IO に対して正規表現マッチングをするのって面白そうだなぁと思います。マッチ成功するか、必ずマッチ失敗することがわかるまで、適宜ストリームを読み込んでくれる感じ。後方参照はなしでいいので。何に使えるかは後からついてきます。関係ありそうであまり…

京急空港線徒歩

さらに今日は羽田空港から京急蒲田まで京急空港線沿いを歩きました。昼の 3 時半過ぎから夕の 6 時半まで約 3 時間。線路の距離では 6.5 km ですが、道のりでは約 9.7 km になりました。羽田空港のある空港島を徒歩で脱出するために、かなりの迂回が必要でし…

ゆりかもめ徒歩

今日は新橋から豊洲までゆりかもめ沿いを歩きました。朝 9 時から昼の 1 時過ぎまで約 4 時間。線路の距離で 14.7 km 、道のりで 15.4 km くらい。連日の暑さがあったので無理はしないと決めていたのですが、一日中ずっと曇りで気温は低く、適度に風もありま…

外部イテレータにケチをつける

Ruby 1.9 にデフォルトで外部イテレータが入ったということで、早速遊んでみました。まずはお約束。原因究明してないけど、多分 Fiber のせい。 callcc {|c| $c = c } def (o = Object.new).foo $c.call end o.to_enum(:foo).next #=> SEGV

花火

多摩川沿いで見てきました。夜空に映える花火に映えるクレーンがとても綺麗でした。写真は飛廉さんによる。 クレーンはナイアガラの滝用。目の前で見たのは初めてでした。シャッター間隔を変えた二種類の写真。 打ち上げ花火を見てるとシューティングやって…

日本語の Coq 情報

Coq

ついでに、主に日本語の Coq 情報を (10 分で思い出せる範囲で) まとめてみます。順不同。 公式に近い情報 本家 Coq'Art (Coq の教科書) Cocorico! (本家 Coq wiki) CiteSeer (笑) Coq のことをまとめようとしている wiki 菊さんの Coq wiki Tossy-2 の Coq …

brainfuck interpreter in Coq

Haskell 、Erlang の次のブームは Coq に違いありません。とりあえず基本ということで、Coq でひねりのない brainfuck インタプリタを書いてみました。動作例。Coq のコードが色づけできないとは何事か。 Eval compute in (finite_execute " +++++++++[>++++…

猿でもできる ruby の落とし方

最近 ruby 1.9 の小さいバグを見つけては ruby-dev に報告しておるのですが、大体こんな感じの馬鹿コードを走らせて探してました。 chars = [ " ", "%", "%Q", "%q", "%r", "%w", "%W", "%s", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",",…

後方参照のある正規表現の能力

定期的に出てくる話題ですが、プログラミングで出てくる正規表現は正規表現ではないので、素数判定ができます。正確には、文字列の長さが素数かどうかを判定できます。2 文字以上のマッチが 2 回以上出現するかどうかを見ます。後方参照がポイント。 p (2..3…

semi-coroutine の使用例

ついでに、Lua のソースコードに付属するテストで、coroutine (semi-coroutine) を使っているもの 2 つを移植してみました。

callcc と coroutine と semi-coroutine

Ruby で callcc を使って coroutine や semi-coroutine を書いてみました。あまり考えずに試行錯誤で書いたので間違ってるかもしれませんが、とりあえず晒してみます。coroutine は Modula-2 で採用されているもの、semi-coroutine は Lua で採用されている…

rope ライブラリの実用性

ところで rope ライブラリって本当に役に立つもんなんでしょうか。rope は結合が早い、ということで、試しに erb の出力バッファを rope にしたものを作ってみました。通常版の erb では String#concat で結合しているのできっと早くなります。一度に結合す…

rope ライブラリの続き

先日の rope ライブラリが微妙に注目を受けてしまっているようなのですが、リファレンスカウント周りがまともに動いておらずリークしまくりです。リファレンスカウント周りを直し、struct をシンプルに書き直し、他にいくつかバグをとったところ、DNA インタ…

歯痛 (2)

絶賛治療中です。担当の先生は手荒な気がするなぁと思っていたところ、LL 魂中に仮の詰め物が欠けて焦りました。まあ今も欠けてるんですが。明日また歯医者行ってきます。 若めの女の先生なんですが、物陰で歯科衛生士さんとくっちゃべってたり、新人っぽい…

イテレータの prev

Ruby のイテレータには next があるのに prev がありません。不自然です。しょうがないので仕様だけ作ってみました。 配列先頭からランダムウォーク。配列から外れたら終了。 a = [] [1,2,3,4,5].each_with_prev do |i| a << i (rand > 0.5) ? next : prev e…

LL 魂

Lightweight Language Spirit を覗いて来ました。出不精だったりなんだったりでこの手のイベントは初めてでしたが、面白かったです。 IO の if の実現の仕方に感動しました。 Clean の一意型ってモナドよりずいぶん簡単そうですね。デメリットはないのかな。…