Ruby Koans メモ
Ruby Koansが勉強になって面白いです
メモ(更新中)
object_id
共通
false.object_id # => 0 true.object_id # => 2 nil.object_id # => 4
Windows XP
ruby 1.9.2p136 (2010-12-25) [i386-mingw32]
fixmin = -2**30 # => -1073741824 fixmax = 2**30-1 # => 1073741823 range = -> base, width=1 { (base-width..base+width).to_a } l_range = range[fixmin] u_range = range[fixmax] p nums = l_range + u_range fexpr = -> num { num * 2 + 1} cond = -> expr, num { expr[num] == num.object_id }.curry f_cond = cond[fexpr] nums.group_by(&f_cond) # => {false=>[-1073741825, 1073741824], true=>[-1073741824, -1073741823, 1073741822, 1073741823]}
Mac OS X 10.6.6
ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10]
fixmin = -2**62 # => -4611686018427387904 fixmax = 2**62-1 # => 4611686018427387903 range = -> base, width=1 { (base-width..base+width).to_a } l_range = range[fixmin] u_range = range[fixmax] p nums = l_range + u_range fexpr = -> num { num * 2 + 1} cond = -> expr, num { expr[num] == num.object_id }.curry f_cond = cond[fexpr] nums.group_by(&f_cond) # => {false=>[-4611686018427387905, 4611686018427387904], true=>[-4611686018427387904, -4611686018427387903, 4611686018427387902, 4611686018427387903]}
Array#[]
self[start, length] -> Array | nil
- lenghtが負の時は nil
- startと配列サイズ以下で、かつlengthが0の場合は []
- startと配列サイズが等しい場合は [] (lengthは0以上)
- startと配列サイズより大きい場合は nil (lengthは0以上)
a = [ "a", "b", "c", "d", "e" ] a[0, -1] # => nil a[0, 0] # => [] a[0, 1] # => ["a"] a[0, 2] # => ["a", "b"] a[0, 10] # => ["a", "b", "c", "d", "e"] a[4, -1] # => nil a[4, 0] # => [] a[4, 1] # => ["e"] a[4, 2] # => ["e"] a[4, 10] # => ["e"] a[5, -1] # => nil a[5, 0] # => [] a[5, 1] # => [] a[5, 2] # => [] a[5, 10] # => [] a[6, -1] # => nil a[6, 0] # => nil a[6, 1] # => nil a[6, 2] # => nil a[6, 10] # => nil