たのしいRuby 第1章 11- 第2章 早速ハマる。

随分空いてしまったが前の続きから始める。GWはRuby漬けでいくぞぉぉぉぉ!!

1章 インクリメント、デクリメント演算子

早速ハマる。

irb(main):077:0> i = 1
=> 1
irb(main):078:0> while i <= 10
irb(main):079:1>  p i
irb(main):080:1>  i++
irb(main):081:1* end
SyntaxError: compile error
(irb):81: syntax error
        from (irb):81
        from :0

う・ご・か・な・い。

ruby-list:5323 Re: Questions on specs and threadsより

++の動作が本質的に「変数を操作する」ものであるため,変数がオブジェクトでないRubyでは導入できないでいます.++や--の「オブジェクト指向的意味」がRubyの他の部分と整合性を保ったまま定義できれば採用したいのですが...

Rubyにはインクリメント,デクリメント演算子が無い!!従って、

i += 1

と書く。面倒だな・・・しかも、5.2 +や-は演算子ですか

+や-などは演算子ではなくメソッド呼び出しです。

何やらRubyが得体のしれないモノになってきたぞぉ。なんだこの言語。不思議である。

2章

eachの展開方法がイマイチ謎。

vimコンパイル

vimで、has("ruby")したら、rubyは入ってない!!omni補完が効かないと痛すぎなので、cvsでcheckoutして、MetaSyntax - Vim Tipsのメアド消して入れてみた。インストールパスが~/local/vim/binなので、sudoせずにインストール完了〜。とってもお手軽。

ソースを手に入れたら・・・行数を計る。コレ、ボクノスの常識。

% wc -l $(find -name '*.[ch]') | sort -n
  ...(略
  10935 ./ex_docmd.c
  15893 ./spell.c
  21297 ./eval.c
 372676 total

tanakaは、ソートを覚えた!! ワンライナテクが徐々に上がってるぜぃ。

で、ソースは37万行。ありえん。