多いは少なく少ないは多いRubyで文字列の文字数(バイト数ではなく)を求める方法のまとめ。-Ku全部を扱えるようにすることを考えると他に手段はないような)。あとは、もう1つのオブジェクト生成が抑制できれば良さそうだ。i'ブロックは作ってるけど必要なメモリー量は最小かも。いうことはいちいちこんなものは(2案、3案と違って)書けない。しないと改行を1文字としてカウントしない(それはそうだ)。charstring.rbをrequireさせるようにするのが良さそう。ちなみに、レシピブックにはこういった「〜するにはどうするの?」が多数収録されているのでRubyを使うなら手元に置いておきたい本です。ゆきひろ)追記:rubycoさんのeach_char。(デフォルト表示のツッコミはリンクにならないので)。#一瞬、Rubystは文字指向ではなくバイト指向というフレーズを思いついたが、簡単にできるから無いだけだな。追記:実際に数100Kのテキストで試すとイテレータ版はとても遅い。成瀬さんからのトラックバック。Array#injectを使うのは、この場合は「Arrayの生成」が必要なのでリジェクトだけど、String#each_byteを使う例はまさに望み通り(正規表現さえ不要)のやつです。ここの各メソッドを$KCODEの値で呼び出すようにすれば良いわけだし。上のを書いたときも思ったし、成瀬さんのString#each_byteを使う実装を見ても思ったのだけど、injectのデザインパターン(アキュムレータに初期値を与え、要素単位にブロックを適用しその戻り値をアキュムレータに与え、最後にそのアキュムレータの値を返す)をeach以外に適用できないかなと。injectの第1引数に繰り返しメソッドを指定するようにしてみたり。追記:Enumulatorを使えば良い。'日本語'.char_count末尾がアキュムレータの評価にならない場合があるので最初nextの代わりにreturnとか書いてはまりにはまった。追記:元々は最初のString#scanをそのまま(Arrayを生成せずにinjectデザインパターンを適用。引数のArrayは作ってるじゃんと思うかも知れないけど、でっかなテキストを与えた場合のArray生成が嫌だというのが理由なので、絶対にオブジェクトを作らないということではない)使いたかったのに、違うことをしている。jcode#jsizeは数100K程度だと確かに速かったです。scan版は改行を数えていないのか。/./mじゃないとだめですね。キーボード買い物に失敗したという話。PowerBookは冬の間はともかく、僕には許容しがたいほどキーボードの周囲が熱くなるので、外付けキーボードを使っている(持ち運ぶ時はジェルを使っているけど)。それがロジクールのワイアレスキーボード。1500に付属しているロジクールのキーボードが結構使いやすいので、買ったのだった。スペースキーの形状のせいか、微妙にひっかかりがあるのが気になってしょうがなかった。いうわけで、やたら評判が良い東プレのキーボードを買ってしまった。スペースキーの両側のキーで日本語/英語切り替えができないし、AltがEmacsでMetaキーとして使えない。キータッチは確かにふにゃふにゃなんだけど使いやすいことはわかったし、キーにひっかかりがないのも気に入った。キーアサインがだめだ。キーボードドライバとか無いし。気になって調べたらロジクールが特殊だということがわかった。実際には僕が買ったワイアレスキーボードにはMac用のソフトウェアはまったく付属していないのだが(ロジクールのサイトでもMacについては何も出てこない)、別に入れたロジクールのマウスのソフトウェアが同じロジクールのキーボードを認識してキーアサインを調整していたのだった。いうかこれまで気付かなかったのだが、確かにキーボードの絵も出ている。最初にマウスのソフトを入れてシステム設定でいじったあとはさわりもしなかったので気付いていなかったということだ。いうわけで、REALFORCEをどう使うか(ミネビアのキーボードと交換するのが良さそうなのだが、切り替え器がPS2なのでそのまま交換はできない)したくもない思案中だったり。ロットンとJavaジョニーロットンがジョンライドンになった理由ってマルコムマクラーレンとの裁判が決着するまではマルコム命名のロットンを利用できなかったからだったように覚えているけど、まあ違っても大した話ではない。Java2がJavaに次から戻るのって、マイクロソフトと和解したからかな、と思ったというだけのことだけど。aptitudeaptの時代は終わったと教わったので、早速coLinuxで使ってみようと思ったら入ってなかった。aptitudeを、取れた。kaffeううむ、何やら死ぬほどいっぱい取ってきている。コンソールを見ているとkdeやらvimやら、なぜそれを取ってくるのだというようなものまで。今見たらgnomeまで取ってきている。これはcoLinuxなのだが......というわけで、スタンドアローンなら確かに手間要らずで良さそうだが、coLinuxだとaptのほうが必要最小限な取り込みの分、良いかも知れないかも、とか思った。書いている間にもgnupgだのlibmailだのtetexだの、ディスクが足りるのかすごく不安になってしまったり。追記:emacs-21、galeon、w3m、freewnn、gimp、perl、ttf-kochi......留まることを知らぬ怒涛のインストール大会と化している。おもしろいRubyFS。1:55とか100行とか。