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

機能追加に関して

私は常々、プログラミングの「機能追加」は、2パターンしかないと思っている。以下の2パターンだ。 包含 並列 この分類は、結合関係に焦点を当てての分類だと思っている。 基本はモジュールで考えることだ。包含とは、自分が相手を含むことであり、並列と…

Pythonのクラスのインタフェース

Wikipediaによると、インタフェースとは、「ものごとの境界となる部分と、その境界でのプロトコルを指す」らしい。 クラスのインタフェースとは、簡単に言ってしまえば、クライアントに公開している機能を呼び出す際の記述方法であると思うのだが、もっと適…

関数型言語必須?

最近、k.inabaさんのサイトで色々教えてもらっている。 最近では、generator、continuation(call/cc)、Duck Typingなどを教えて頂いた。 これは、関数型言語の考え方が関係していると思われるのだが、私自身、関数型言語を勉強したことないので、これから勉…

ポインタ型

C++

ことC++に関しては、ポインタは頭が痛い。特にジェネリックな実装をする場合には。 例えば、あるクラスを引数で受け取り、それをtemplateで型を抽象化する場合、その型が、ポインタ型なのか、実体型なのかで実装が違う。 template void foo(T val) { // Tが…

イテレータ

Pythonの、あるクラスに対するiterateは、例えば以下のように行う。 for i in A(1, 6): print i, # => 1 2 3 4 5つまり、イテレータのカーソルデータをインスタンスオブジェクトの中に埋め込む訳であり、クラスの中にイテレータを実装する訳である。これは、…

Pythonのクラスに関して

「初めてのPython」のクラスの部分を少し読んだ。 クラスは、ほぼ、単なる「名前空間」らしいのだが、モジュールとの違いは、クラスは属性を継承できることらしい。 また、クラスもクラスオブジェクトと呼ばれていて、以下のように、クラスオブジェクトに値…

初めてのPython 第2版

今日、「初めてのPython 第2版」によりようやくPythonの勉強を始める。 今までScript言語と言えば、Ruby派だったのだが、仕事で実用的に使うことを考えるとPythonになる。自分の行っている会社のアプリでカスタマイズ言語としてPythonを組み込んでいるもの…