ruby

inject

って要するにHaskellのfoldlだよね?こういうのを畳み込み関数というらしい。http://www.ruby-lang.org/ja/man/?cmd=view;name=Enumerable;em=Enumerable の例にあるようにeach使って書いてたよ。

D言語の契約プログラミングをrubyに

動的型付けはおいしいこともたくさんあるけど、メンバ変数の型を保証したいことも結構ある。そんなときにaccessorのinvokeを監視できるシステムがあると便利かも。ActiveRecordに似たような実装があった記憶があるのと、 def asdf= val throw unless val.is_…

clone/dupの挙動

あくまでshallow copyなので、a.aryもb.aryも同じ配列オブジェクトを参照する。 class TestClass attr_accessor :ary def initialize @ary = Array.new end end A = TestClass.new A.ary << "a" B = A.clone p A p B B.ary << "b" p A p B%ruby clonetest.rb…

Lily2解析

今日は[Lily2:lily.sourceforge.jp]のソース解読。プラグイン機能実装を解析中。 Object#instance_eval組み込み関数 そのObjectをselfに置いた状態でeval。動的にObjectの特異メソッド定義ができる。 Lily#Plugin#regist_plugin関数 grepしてもどこからも呼…