Ruby

NaNの動き

Ruby も NaN == NaN が true になる可能性が…ふと気になって調べてみました。 1.4〜1.9系Rubyでの動き NaNはFloatの演算で算出することが出来ます。 つまり、 0.0/0 がNaNになるはずなので、 p 0.0/0 == 0.0/0 がtrueになるかfalseになるかを観察する方向で…

認定証が届きました

先日、Ruby Association Certified Ruby Programmer Silverに合格したと書いたわけですが、月曜日に認定証が届きました。 ちなみに折れ曲がっているように見えるのは…輸送中の事故のようですorz# 写真がなぜかモザイクかける前のものに戻っていたので、一旦…

local_variable_getはどう作る

なんとなくRubyにlocal_variable_get(sym) を作ってみたくなって、Rubyのソースコードを覗いてみた。 Truncの#19354を調べたものの、結論から言うとどこをどう使えばいいかわからず、とっかかりすらつかめなかった。 情けなや。 evalでもいいんだけどね… loc…

lambdaの書き方

チャーチ数について納得いく理解が得られなくてふと気になり調べていたら、Ruby1.9 のラムダさん 2 (SKI とチャーチ数 256) - 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 の表現でびっくりした。 i = -> x { x } >って演算子、rubyにあった…

Ruby技術者認定試験、受けてきました(3)

前回 試験日は土曜日…つまり昨日ですね。 今回は体調を整え…としたかったものの、前日は頭痛でダウン。 だいぶ落ち着いたとはいえ、その頭痛を引きずったまま行きました。 直前にauthorNariさんの日記経由でInfoQ: PythonプログラマがRuby技術者認定試験を受…

net-scpを使ってみた

手元にファイルをSCPで転送してきて解析する作業をしたくなった。 しかしただWinSCPとかでやるのは面白くないので、rubyで組んでcronに登録できる形には出来ないかと考えてみた。まずはscpをサポートするライブラリが無いか探す。 Owner@fam ~ $ gem search …

いろいろ反省

昔は相当飲まないと酒に飲まれる事はなかったのだけど、どうも弱くなったらしい。 某勉強会の懇親会で、すっかり酔ってしまって、空気読まずに変な事を言ってた気がする。 冷静に考えると、一部間違ってるし。 やってしまった。 31才。そろそろ若い人から甘…

coalesce

というわけで、下の :? 演算子、Rubyで出来ないか試してみた。まずはcoalesce。 これは引数を順に評価し、最初にnullでなかったものを返す。 つまり、こうなる。 Owner@fam ~ $ ruby -e ' > class Object > def coalesce(*v) > self > end > end > class Nil…

PHPの今とこれから2008の勉強メモ

PHPカンファレンス2008の基調講演をニコニコで見て要約。 ()の中は私の突っ込み。 ・PHP4 →2008/8/8にサポート終了 →4から5は、関数などにも仕様変更があるため、テストしながら 移行検証する必要がある ・PHP5.3 →PHP6は遅れ、PHP5.3に6だったはずの機能が…

幸せなRuby生活に必要なこと』見てきました

本編にて 昨日、ジュンク堂の『はじめてのRuby』発売記念トークセッション『幸せなRuby生活に必要なこと』を見てきました。 内容はYuguiさんの『はじめてのRuby』という本をネタに、ご本人と角谷さんがトークするショーでした。 この本、oreillyの本で、動物…

同値関係を求めるパズル

元ネタもやっていなかったので、脳トレがわりにやってみた。 断っておきますが、やってみただけです。特に考察などを加えているわけではないので、あしからず。 今回のエントリは結城浩の『Perlクイズ』2004-06-18 No.0087をベースにしています。 問題 xxxx=…

やはりEnumerable#empty?は、汚染無しで可能でした

Enumerable#empty?は、汚染なしに可能かの続き。 Twitterでn0kadaさんから、もっとエレガントな書き方があると教えてもらいました。 (ありがとうございます!>n0kadaさん) Owner@fam ~ $ /usr/local/ruby-1.8.1/bin/ruby -ve ' p [].any?{true} # => false …

Enumerable#empty?は、汚染なしに可能か

Enumerableに対して、変数領域を汚さずに empty? みたいなメソッドが出来ないか考えてみた。 つまり、Enumerableなインスタンスeに対して、 i = 0 e.each{i+=1}して、このiが1以上であればfalse。0であればtrueを戻すメソッドと同じ動きをする処理。つまるは…

Array#countを使うべきか否か

Array#countは1.9系に追加されたメソッドで、1.8系では1.8.7からサポートされている。 が、これ、つまるは1.8.6ではサポートされていない。 Owner@fam ~ $ /usr/local/ruby-1.8.6-p230/bin/ruby -ve 'p [1, 2].count' ruby 1.8.6 (2008-06-20 patchlevel 230…