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

内部イテレータを外部イテレータに変形する(その2:2分木構造の場合)

C#

つづき。ようやく当初の目的だった木構造。 配列のときと同様、目標は、以下のような2分木クラスの内部イテレータTreeNode.ForEachを元にTreeNode.ForEachIterableを作成し、外部イテレータを返すTreeNode.GetEnumeratorからTreeNode.ForEachIterableを呼ぶ…

悲しい色やね

by 上田正樹

内部イテレータを外部イテレータに変形する(その1:配列の場合)再考

C#

木構造で考える前に、もうちょっと配列で考えてみる。(元ネタ:「http://d.hatena.ne.jp/terazzo/20090308/1236526403」) 「内部イテレータを外部イテレータに変形する(その1:配列の場合) - チキン煮込みチーズミックス4辛」の最後らへんでちらっと書い…

継続渡しに関する無駄思案

さっさと続き書けよって感じだけど。また横道へ。 継続渡し形式で手続きは、概念的に「呼び出し元へ戻る」ってことがなくなるので、例えばC#でちゃんとした継続渡し形式の手続きを書こうとすると、複数の文(セミコロンが2個以上)になることはないような気…

When the Children Cry

From "Pride", by White Lion

CPS変換

CPS変換に関して入門すらしてないのに「CPS変換の復習」とか偉そうなこと書いてて、穴がったら入りたい。Webなり本なり読んでちゃんと勉強したい。 ¾ðÊó²Ê³Ø¼Â¸³II»ñÎÁ (4) CPSÊÑ´¹¤Î¥¢¥ë¥´¥ê¥º¥à http://www.h4.dion.ne.jp/~unkai/js/js12.html CPS形式への…

内部イテレータを外部イテレータに変形する(その1:配列の場合)

C#

「内部イテレータを外部イテレータに手動で変換してみる実験 - terazzoの日記」の「内部イテレータを外部イテレータに変形する 1.配列の場合」。かなり長くなってしまった。 ForEachの引数に渡すIntProcedureはPredicateで置き換えようと思ったけど、後々Int…

木構造の外部イテレータ

C#

ちょっと横道へそれる。 「ツリー構造用の外部/内部イテレータの実装 - terazzoの日記」には、以下の3つのアプローチによるm分木の外部イテレータの実装例がある。 いったん木構造を配列にしてから、その配列のイテレータを返す スタックで現在位置を保持し…

処理を保存してみる

C#

前回の続き。今回は「内部イテレータを外部イテレータに手動で変換してみる実験 - terazzoの日記」の、「継続渡し形式を中断可能にする」の部分。 前回はFactとFiboをCPS変換してFactCpsとFiboCpsに書き換えてみたけど、CPS変換前後で再帰関数であることは変…

CPS変換の復習

C#

木構造に対するイテレータに関して、もうちょっと考えると楽しそうな気がしていた(根拠は無く直感的に)のでぼんやりと考えてたら、 yield returnはコルーチンだし、コルーチンがあればイテレータが簡単に実装できるのかぁ... そういえばプログラミングGauc…

Walk

From "Pride" by Chage and Aska

yield return

C#

イテレータを簡単に書けるyield returnが便利で好きなのだけれど、以下のようなのが書けたらなーと思ったのでメモ。 using System; using System.Collections.Generic; class Hoge : IEnumerable<int> { int[] _a; int _b; int[] _c; public Hoge(int[] a, int b,</int>…

配列はどう実装されているのか?

PHP

翻訳その1. 元ネタ:http://stackoverflow.com/questions/247467/how-are-associative-arrays-implemented-in-php (その魚拓) 質問 Can someone explain how PHP implements associative arrays? What underlying data structure does PHP use? Does PHP …

配列と連想配列に関して

PHP

連想配列の内部実装が気になったのでtwitterでつぶやいてみた。ハッシュ表で実装されている事と、有用なURLを教えていただいた。 @yagiey_tw PHPの配列は ordered map なのですが、その実装はハッシュテーブルだそうです( http://goo.gl/yAGDS )。foreach は…

Cレベルの低レベルなレイヤでは、配列はどう実装されているのか?

PHP

翻訳その2。だんだん和訳が目的っぽくなってきてめんどい。とりあえずやっつけで書いとく。こっちの方が新しいらしい。 元ネタ:http://stackoverflow.com/questions/2350361/how-is-the-php-array-implemented-on-the-c-level (その魚拓) 質問 The PHP ar…

タイプミス

PHP

ちゃんとcatchしてる例外のはずなのに、なぜエラーになるのか30分くらい悩んだ。 こんな感じ → http://ideone.com/ceqCl コンパイラさん何か言ってよ...。何のために型を明示させてんスか。 あと、例外とは関係無いけど、変数名も良くタイプミスする。宣言を…

少し調べてみた

PHP

一番基本的なところを少々... クラスは参照型っぽい? http://ideone.com/YntrV C#ではクラスは参照型だけど、PHPも同じっぽい?代入して、左辺の変数をいじったら、右辺のオブジェクトに影響が出た。 参照の参照?...なの?ホントに? http://ideone.com/9t…

PHPUnit入れてみた

今更ながらPHPUnitの存在を知ったので、XAMPP環境@Windows XPにインストールしてみた。 $pear install -a phpunit/PHPUnitすると、 phpunit/**** requires PEAR Installer (version >= 1.9.1), installed version is 1.9.0ってエラーになってるところが何か…