Ruby
ピッケル本を読んだけれど、まだほとんどプログラムは作ってません。
私のRubyの実力は「数行程度のプログラムが書けるぐらい」です。
しばらくはRubyで遊んで、数百、数千行ぐらいは書けるようになります。
ファイルの中身を表示する処理です(unixのcat)。
でもこんなことをしなくても puts IO.read("cat.rb") でできます。
# ファイルの中身を表示 def cat(fname) File.open(fname) do |file| file.each_line do |line| puts line end end end
クイックソートです。クイックソートの定義そのものです。
関数型言語のHaskellなどでも同じぐらい簡素にかけるのですが、Rubyでも同じぐらい簡素にかけます。これも、[1,4,5,3,2,7,0,1].sort()で同じことができます。
# クイックソート def qsort(list) if list.empty? # リストが空なら、 [] # 空のリストを返す。 else # そうでないなら s,*rest = list # リストの先頭をsに、残りをrestに代入して、 qsort(rest.select{|x| x<s}) + [s] + qsort(rest.select{|x| x>=s}) # restの中でsより小さいモノをソートし、sと # sより大きいものをソートしたものをつなげる end end # てすと puts qsort([1,4,5,3,2,7,0,1])