Ruby
ローマ字表記のまま文章に登場することがふつうであるIT用語は多い。プログラミング言語Cを「シー」と書く人はまずいないだろう。 しかし、それらが新聞や一般向け書籍などの媒体に登場するとき、カタカナだけで表記されることがある。何年か前には、新聞で…
文字列(String)を整数(Integer)へ変換することでおなじみの String#to_i メソッド。このメソッドは、引数に整数値を指定すると、その値を文字列の基数とした上で整数変換を行う。この引数と、「引数指定時に括弧を省略できる」という Ruby の仕様によって、…
素直に 1.8 系列を入れよう。「msvcrt-ruby18.dllがロードできません」的なエラーメッセージに遭遇したら*1、とりあえず 1.8 系列をインストール。自分の場合は、それで解決できた。 *1:vim-ruby によるオムニ補完をやろうとして遭遇。
Rubyのメソッド探索アルゴリズムについて、大分わかってきたので、図にまとめてみた。 対象バージョンは1.9。
モジュール関数は、モジュール名付きで呼ぶ場合と、includeしてからモジュール名なしで呼ぶ場合との二通りの呼び方が可能だ。このとき、両者は別々のメソッドを呼んでいる。前者はモジュールの特異メソッド、後者はモジュールのprivateインスタンスメソッド…
自分なりの書き方まとめ。 エイリアスを設定。 alias rol='ruby -n -e' または alias rol='ruby -p -e'。 前者は、入力を処理した結果を出力しない。後者は、出力する。各オプションの正確な意味はリファレンスを参照。 rol '(Rubyコード)' filename とする…
Emacsのruby-modeでは、C-jでインデントと改行を行える(ruby-reindent-then-newline-and-indent 関数)。これを、リターンキーでも行えるようにした。改行をC-jで行うというのが不自然で慣れないので。
配列のコピーをdupやcloneでとる場合、一方の配列の要素オブジェクトを破壊すると、他方にも影響を与える(浅いコピー。→参考)。しかし、数値配列のように、要素*1が破壊的メソッドをもたない*2場合は、コピー元とコピー先との相互作用はないので、事実上の深…
ruby-prof-0.7.3をインストールしようとしてエラー発生。ruby-prof.cのコンパイルで "expected declaration specifiers or '...' before 'NODE'" なんたらかんたら。ruby-prof.cを読んでも、何がおかしいのかわからず、挫折。バージョンを0.7.0まで下げてみ…
Rubyのドキュメントを見て、「あれ? Arrayでcollectが定義されているぞ。eachから派生するイテレータ*1はEnumerableで定義するんじゃなかったか?」と思ったが、よく見たらexclamation markが付いていた。collect!、つまり破壊的メソッドだ。破壊的なイテレー…
表題通り。rubyでなるべく高速にプログラムを動かしたかったので、とりあえずRubyInlineをインストールしてサンプルコードを実行してみた。 環境 Ubuntu8.0.4日本語版 VMware用仮想マシン on WindowsXP SP3
RubyからRを呼び出せるRSRubyをインストール。ものすごく苦労しました。とりあえずそのログを残しておきます。誰かの参考になれば。 注意 インストールが全て完了してから、やったことを思い返して書いているので、ところどころ曖昧な部分や、間違った部分が…
追記(2009-01-10): 「Rubyからのメッセージ」に、まつもと氏のプログラミング言語の考え方についての注釈を追加。 世の中には、「プログラミングを取り扱った動画」なんてものも存在する。ここでは、ニコニコ動画にアップロードされている、Rubyに関わりのあ…