ごはんをたべよう

おいしいご飯を食べよう

Rubyを試してみた

最近僕の机の近くにいるRubyistRubyキチと呼ばれ始めている.絶対JavaとかC++で書いたほうがいい計算を,頑張ってRubyで書いている.

実行速度が情けないことになっていたけど,最近のリリースでだいぶ早くなったらしい.

 

恋するプログラム―Rubyでつくる人工無脳

恋するプログラム―Rubyでつくる人工無脳

 

僕がRubyを知ったのはこの本だったので,かれこれ11年前になる.*1

このころはオブジェクト指向の文字列処理に強いスクリプト言語というイメージだったけど,最近はどうも違うらしい.

Rubyの輝きはお前の命の輝きだ.

Ruby on Railsとかいう謎のあれもあって,なかなかに盛り上がっていたのは知ってた.

盛り上がりについていったプログラマ諸兄が素材となって,あのRubyの輝きを作り出しているのだな. *2

 

Ruby Programming Language

Rubyとは...

オープンソースの動的なプログラミング言語で、 シンプルさと高い生産性を備えています。 エレガントな文法を持ち、自然に読み書きができます。

11年前に使ったときは,メソッドを呼び出すとき引数括弧を省略できるせいもあって,なんだかLuaみたいなスクリプト言語だなという認識だった.*3

まずそのころはオブジェクト指向もよく理解できてない雑魚キャラだったのでしょうがないとして,僕もRubyを始めたいなと少し思った.*4

 

gistf39e93a4ac7fed5c8c1c55b9fc469466

始めました.以上です.

 

Rubyゴリラに両手で潰されてしまう.*5

ちょっとはまともなコードを書かないと.

 

gist7c6bdda91a40b59fdb3d27243c88b0b8

フィボナッチ数列で任意の位置の数字を求めてみた.

フィボナッチ数列の漸化式をそのまま書き下せるのは強い.ラムダを使ってるのはRubyのラムダ記法がかっこいいから.*6

なんとRubyには遅延評価も実装されてるらしいので,任意の自然数に対する操作として,偶数のフィボナッチ数を小さいほうから10個求める式は次のように書ける.

gist40fb406736acc6cff15b92ca241e2efe

個人的には 1.0/0 が評価されて Infinity になることで無限数列を表現できるのが一番驚きだった.

書き方もシンプルで,かつかっこいいし.

これは癖になりそう.

 

*1:発売後即手に入れたわけじゃないし,正確にはもうちょっと短い

*2:賢者の石ということか

*3:ノビィちゃんに気を取られてただけ

*4:今も雑魚

*5:Rubyの輝きはお前の命の輝きだ

*6:アロー演算子の魔力よ