def g() -2 endとギャップをゼロ変数関数として定義していますが、
g=-2のように普通の変数として定義しては駄目ですか?
g=-2と書くと,irbでloadした時に
irb(main):005:0> g g NameError: undefined local variable or method `g' for main:Object from (irb):5 from /usr/bin/irb:12:in `のように参照されないという問題があるので,教科書では定数関数として定義してます. ギャップの値を使うそれぞれの関数の最初に'
g=-2と書けば良いというのは確かですが,「-2」という値を書き換える必要が生じた時に,書き換える場所が分散しているのは避けた方が良いので,おすすめしません.
irb(main):1020:0> load("./align_rec.rb") ./max.rb:1: warning: else without rescue is useless SyntaxError: ./max.rb:1: syntax error, unexpected tIDENTIFIER, expecting kDO or '{' or '(' endnd yxx,y) ^ ./max.rb:1: syntax error, unexpected kEND, expecting $end endnd yxx,y) ^
irb(main):028:0> 010 => 8
irb(main):014:0> 0b1100 # 2進数 0b1100 => 12 irb(main):015:0> 0x8a # 16進数 0x8a => 138 irb(main):016:0> 0o70 # 8進数の別の表記 0o70 => 56
ruby vote.rb 選択肢番号のように使います.
def k_height() 188.0 end def k_weight() 104.0 endが定義されているbmi.rbをloadすると,
bash-3.2$ irb irb irb(main):001:0> load("./bmi.rb") load("./bmi.rb") => true irb(main):002:0> bmi(k_height, k_weight) bmi(k_height, k_weight) => 29.425079221367138のように呼び出すことができる.
irb(main):003:0> a=[1, 3, 2, 4] a=[1, 3, 2, 4] => [1, 3, 2, 4] irb(main):004:0> a.length a.length => 4
def transpose(a) m = a.size() n = a[0].size() c = make2d(n, m) for i in 0..(m-1) for j in 0..(n-1) c[j][i] = a[i][j] end end c end実行例
irb(main):003:0> a=[[1,2,3],[4,5,6]] a=[[1,2,3],[4,5,6]] => [[1, 2, 3], [4, 5, 6]] irb(main):004:0> transpose(a) transpose(a) => [[1, 4], [2, 5], [3, 6]]