購読を始めるとコンテンツの最初のページから毎日1ページずつお届け。
のんびりペースで読むフィード。

rubyco(るびこ)の日記 2006年4月

スポンサードリンク

 タグ Ruby rubyco プログラミング 勉強日記

 30ページ (30日間購読)

 1人購読中

  http://d.hatena.ne.jp/rubyco/

rubycoと同じペースでほほえみつつRuby。四ヶ月目で一段落。

このフィードは部分配信フィードです。

このコンテンツに含まれるページ一覧

Perlのスクリプトを実行 Rubyのソースを読んでいて、オプション-lを付けるとPerlのスクリプトを実行する、という機能がインタプリタに含まれていることに気づきました。 さっそ...
rubyo (るびお) の日記登場! 最初、エイプリルフールかと思ってしまいました < 失礼ですね。
initializeの引数をインスタンス変数に引き渡す initialize に渡された値を自動的にインスタンス変数にするを読んで。 ちょっと主旨が違うような気もしますが、書いてみました(1)。 ...
ある級数の収束 $\sum_{k=1}^{\infty}\frac{k}{2^k} = 2$を実験的に調べてみます。 sum = Rational(0, 1) n = 1 p = 2 while n < 50 sum += Rational(n, p) p sum.to_f n += 1 p *= 2 end 実行結果です。 0.5 1.0 1.375 1.625 1.78...
定数とクラス変数 クラス変数へは、外部から直接代入できません(コンパイル時(?)のエラー)。 定数には、外部から代入ができます。再代入すると警告がでます。 class Rubyco Message =...
調和数 数学物語テトラちゃんとハーモニック・ナンバーに出てきた、調和数のグラフ用のデータを作ります。 まずは、Floatを使って、ナイーブに。 def harmonic(n) s = 0.0 (1..n).each do |...
abort abort(message)でmessageを標準エラー出力に出して終了します。終了ステータスはEXIT_FAILUREになります。 Permalink | コメント(0) if修飾子が付いた式の値 「式A if 式B」のとき、式Bが...
自己言及 とても眠いので自己言及プログラムを書きました。ついでにトラックバックもしておきましょう。 q=%q(print"q=%q(#{q});#{q}");print"q=%q(#{q});#{q}" Permalink | コメント(7) 何となく...
HTMLファイルを集めてindex.htmlを作る カレントディレクトリにあるHTMLファイルを集めてindex.htmlを作るスクリプトです。 HTMLであれこれ実験した後、ちらばったHTMLをとりまとめるた...
RubyスクリプトをLaTeXで整形(?) RubyのスクリプトをLaTeXで美しく整形するツールがほしい、と思った。 いきなり書きかけて、ふと「絶対すでに誰かが作っているはず」と思い直した...
LaTeXでグラフ描画 数学ガール最新作、テトラちゃんとハーモニック・ナンバーに出てきた、反比例・調和数・対数関数のグラフを描くLaTeXのソースを生成するRubyスクリプトを作り...
instance_eval Object#instance_evalは、レシーバのコンテキストでevalを行います。インスタンス変数にもアクセスできるので注意が必要です。 以下のプログラムは、Object#instance_variablesと...
gcdlcm Integer#gcdlcmで最大公約数と最小公倍数をいちどに得られます。 p 36.gcdlcm(24) #=> [12, 72] Permalink | コメント(0)
eval 入力をevalすると…ええと…evalされます。 while true print "> " line = gets.chomp! break if line == "quit" puts eval(line) end 実行結果です。 > 1 1 > "Hello" Hello > 1 + 2 3 > "Hello" + "!" Hello! > Math::PI 3.141...
三角関数 / メソッド一覧 三角関数はMathモジュールで関数として定義されています。 p Math::PI #=> 3.14159265358979 x = rand p Math.cos(x) ** 2 + Math.sin(x) ** 2 #=> 1.0 では...
フィボナッチ数列 id:pyletさんのフィボナッチ数列(fib2)をRubyにて。 Pythonのrange(n)の意味は(0...n)でよいのかしらん。 def fib(n) a, b = 1, 1 for i in (0...n) a, b = b, a + b end a end for i in (0...20) pri...
lambdaとproc lambdaとprocはいずれもProc.newの同義語です。 p lambda {} #=> #<Proc:0x00000000@a.rb:1> p proc {} #=> #<Proc:0x00000000@a.rb:2> p Proc.new {} #=> #<Proc:0x00000000@a.rb:3> 追記:あ、ささださん...
フィボナッチ数列、もっと おとといのフィボナッチ数列の続きです。id:sumimさんが、call/cc を使ったコルーチンもどきでフィボナッチ数列という楽しいプログラムを書いていらし...
between? Comparable#between?(min, max)はselfがmin以上max以下のときにtrueのようです。つまりinclusive. p 0.between?(1, 3) #=> false p 1.between?(1, 3) #=> true p 2.between?(1, 3) #=> true p 3.between?(1, 3) #=> true p 4...
仮想的な無限列(2) 昨日の続きで、仮想的な無限列を作っております。とりあえず、こんなのできましたというご紹介を。 Sequenceクラスは、初期値が与えられれば無限列を作るひ...
仮想的な無限列(8) 有限列も使えるようにしました。OfGivenを使います。 Call = lambda {|f, *a| lambda { f[f, *a] } } Walk = lambda {|n, xs, eachf, lastf| Call[ lambda {|fs, xs, n, eachf, lastf| if n > 0 y, ys = xs[] ...
仮想的な無限列(9) 今回の主な修正点は… nilを_で表示 Ten = Sequence[OfConstant, 10] PowerOf = lambda {|s| Zip[Power, s, Natural]} PowerOfTen = PowerOf[Ten] Show[PowerOfTen] class NilClass def to_s "_" end end Call = lamb...
仮想的な無限列(12) 今回の主な修正点は… AccumulateWithの引数をfold風にした。 念願のMapを作成。 無意味な同一引数渡しを省略(op, eachfなど)。 Mapを使ってFibonacciの各項が偶数か奇数...
accumulate 世の中ではaccumulateが流行っているらしいので(ひげぽんさんとtociyukiさん)、最近のラムダ遊びで私もaccumulateしてみます。 Add = lambda{|x, y| x + y} Call = lambda {|f, *a| f[f, *a]} Sequen...
srand srandは疑似乱数の種を与えます。同じ種からは同じ乱数列が生成されます。これは再現性のテストで重要。 5.times do srand 12345 10.times do print rand(10), " " end puts end 実行結果です。 ...
プログラミング言語の勉強を継続する三つのポイント 「ほほえみつつ、Ruby。」をキャッチフレーズにしてRubyの勉強を続けています。早いもので、今日で96日目(二進法では1100000...
upto, downto Integer#upto, Integer#downtoは引数で指定した限界までイテレートします。uptoは増やしていく、downtoは減らしていく。限界も含みます。 0.upto(10) do |k| print "#{k}, " end puts 10.downto(0...
Date::MONTHNAMES 月の名前、日の名前。 require 'date' p Date::MONTHNAMES p Date::DAYNAMES p Date::ABBR_MONTHNAMES p Date::ABBR_DAYNAMES 実行結果です。 [nil, "January", "February", "March", "April", "May", "June", "July", "Au...
パスカルの三角形 何となくパスカルの三角形を描きたくなったので。 def combination(n, k) if k == 1 or k == n return 1 else return combination(n - 1, k) + combination(n - 1, k - 1) end end def line(n) a = Array.ne...
これで一区切りとします 「るびこの日記」は今日で100日になりました。毎日更新を心がけて来ましたが、今後はペースを大きくダウンいたします。 こういうやり方で勉強するの...
FAQ  利用規約  お問い合わせ  管理人ブログ  Copyright (c) 2006-2010 brass.to