Xself

他の言語から学ぶべきこと

Ruby Pros if文などが式である (値をもつ) ブロックの構文いいよね すべてがオブジェクトなのいいよね 豊富なリフレクションAPI duck typing Cons Fileクラスとか雑然としている IOとFileとDirとPathnameを統合すべきだとおもう ファイルパスの表現としてのP…

メモ #4

静的型付けというのは一種の統合テスト環境だとおもっていて、処理系とテスト環境が完全に一体化しているからありがたいのであって、動的型付けであっても同等のテスト環境を整えるのは不可能ではないはず。また、充実したメタプログラミングのためのライブ…

メモ #3

関数とは、任意のパラメータから任意の値への写像である。オブジェクトとは定数関数(メンバ変数)や関数(メソッド)の集合であり、またオブジェクトそれ自体が識別子からメンバ(変数、関数)への写像である。オブジェクトは0個以上のスロットを持つ。スロ…

メモ #2

Literal リテラル(によって生成された値)を指す。自身の値を指す @value という属性を持つ。 Identifier 識別子。特別なリテラルと考えられるので、Literal を継承する。別のリテラル(Identifier も含む)を参照し、値として持つことが可能。また、自身の…

メモ #1

Identifier も Literal も値でありどちらも「参照される」ことは可能だが、 Literal は「参照する」ことはできない。つまり "hoge" というリテラルは常に同じオブジェクトIDをかえす。言い換えると Identifier は自身の文字列表現を表す @name という属性を…