言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

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

Alloy

Alloy というのが面白いらしいのでやってみた。ちなみに、これを書いている時点で Alloy というのが何なのか説明を読んでも人に聞いても全くさっぱり分かってないですが、とりあえず触ってみます。 alloy の構成 alloy は他のシステムに依存していて、次のよ…

そぼろ

他に私の好きな料理は「そぼろ」だ、あの、三色弁当に入ってる奴。どうしても食べたくなって、五年ぶりに作ってみた。むかーしノースカロライナにいた時、外食のあまりのまずさに我慢が出来ず、毎日そぼろを作っていたのだ。最初は滅茶苦茶まずくてどうしよ…

近況

良い事。最近なべを買った。手のひらを広げたくらいの小さなサイズの両手なべ。前からアメリカ製のかっこいいやつを持っていたが、重いし、何となく心理的になじまず一度スパゲッティをゆがいて以来一度も使っていなかった。こないだミツワに行くと、ふと給…

ふつうの言語で Lazy list について考える(5)。delay force

scheme で実験しながらずっと疑問に思っていたのが、なぜ関数の全体を囲む lazy が必要なのかという事でした。落ち着いて srfi-40 を読むと、map の実装に必要だと書いてありましたが、いまいち納得いかないので、さらに実験してみます。前回までの復習です…

ふつうの言語で Lazy list について考える(4)。

いろんな誤解がだんだん溶けて来たのでまた書きます。遅延リストを普通の言語で表現する方法には、奇ストリームと偶ストリームの二通りあります。奇ストリームではストリームの CDR にあたる部分(次の値) だけが遅延評価される一方で、偶ストリームでは全体…

ふつうの言語で Lazy list について考える(3)。

おお、id:SaitoAtsushi さんのおかげで何か思いついたので書きます。まず余分な cdr 計算しないようにした遅延評価版フィボナッチ数列です。 (define lfib (delay (let loop ((a 0) (b 1)) (cons a (delay (loop b (+ a b))))))) すばらしい。。。さて、何ら…

ふつうの言語で Lazy list について考える(2)。

前に書いた stream の実装はどうなっているのだろうと気になったんだけど、難しくてライブラリのソースコードは全然読めませんでした。そこで、http://practical-scheme.net/gauche/man/gauche-refj_54.html#SEC100 にある遅延評価の使い方の例を見て、手作…

つらつらと flash について

ふと思い立って、再び flash の事を調べだした。前から少しずつ調べているのに何も出来上がらないのは特に何の義務も責任も、もしかしたら興味もないのかも知れないと思いつつ色々物思いにふける事にする。一つ直面している問題に flash がある。学校なんか…

近況

二万円のお値打ちが一万円になりますよ!みたいな口車にのせられて LACMA(ロサンゼルス郡立美術館)のメンバーパスを買ったので、元を取るために今週も行って来た。ポンペイ展という企画展もあったんだけど、オープン直後に行くとろくな事がないと思って静か…

ふつうの言語で Lazy list について考える。

こないだ Prolog を実装する時には随分 Haskell の遅延評価にお世話になりました。そこで、この大変便利な機能を普通の言語で使うにはどうしたら良いだろうかと色々調べると、Scheme の http://srfi.schemers.org/srfi-41/srfi-41.html というのに詳しく書い…

Prolog を Haskell で書く。

Prolog インタプリタを Haskell で書きました。しばらく書いただけで満足してしまっていたのですが、このまま人知れず消えて行くのも寂しいので勉強した事を書きます。まず、参考にしたソースは前回書いた hugs98/demos/prolog/ です。このソース。大変短く…