ゲームや日記を公開中。 --- a blog about games, life. my handle is 'd_of_i'.
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
先日のコメント欄にて、「そもそもrubyって何が便利なのさ」という疑問に、私は「記述が楽」と答えました。

じゃーどれくらい楽なのか。

試しにこんなプログラムをC++とRubyで書き比べてみました。


5 9 8 7 5 6 7 8 2 1 6
という感じに、空白区切りの数字が書かれた"test.txt"というファイルがある。
これを読み込み、数字を降順にソートし、空白区切りの数字として、"out.txt"というファイル名で出力せよ。




// C++

#include <vector>
#include <fstream>
#include <algorithm>
#include <functional>

main(){
std::vector<int> values;
std::ifstream is("test.txt");
std::copy(std::istream_iterator<int>(is),std::istream_iterator<int>(),std::back_inserter(values));
std::sort(values.begin(),values.end(),std::greater<int>());
std::ofstream os("out.txt");
std::copy(values.begin(),values.end(),std::ostream_iterator<int>(os," "));
return 0;
}





# Ruby

File.open("out.txt","w"){ |out|
out.print IO.read("test.txt").split(" ").sort{|a,b|b<=>a}.join(" ")
}





さてどうでしょう。
私はC++は好きなのですが、何から何までC++で書くととても疲れます。

C/C++等の静的言語しか知らない人は、
試しに動的言語と言われる類の言語も勉強することをオススメします。

ではまた次回。
スポンサーサイト
コメント
コメントを投稿する
URL:
Comment:
Pass:
:
 
Trackback
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。