Any::p
xtalの全てのオブジェクトの基底クラスは「Any」という名前です。他の言語では大抵「Object」ですが、xtalはタイプ数の関係でAnyに決めました。
Anyには「p」というメソッドが定義されています。Rubyのpと同じように、主にデバッグ用途にオブジェクトを文字列としてprintします。
Rubyのpは関数的に使いますが、xtalのpはメソッド的に使います。
pは次のように定義されています。
Any::p: method(){ println(this.to_s); // 文字列化して出力 return this; // 自分自身を返す }
見ての通り、pは自分自身を返すので
value.to_a.p.each{}
のように、間に挟んで値のチェックをすることが出来ます。