[ create a new paste ] login | about

Link: http://codepad.org/kzfZ5nw6    [ raw code | output | fork | 1 comment ]

joshua_cheek - Ruby, pasted on Oct 26:
#Learning Ruby chapter 6

a = [1,3,5,7]
b = [2,4,6,7]
puts "1 intersection: #{a.inspect} & #{b.inspect} = #{(a&b).inspect}"
puts "2 union: #{a.inspect} | #{b.inspect} = #{(a|b).inspect}"
puts "3 difference: #{a.inspect} - #{b.inspect} = #{(a-b).inspect}"
puts "4 difference: #{b.inspect} - #{a.inspect} = #{(b-a).inspect}"

#as a stack
a.push 4
puts "5 push: #{a.inspect}"
puts "6 pop: #{a.pop} , #{a.inspect}"

#changing several values
a = [0,1,2,3,4,5,6]
a[2..4] = "two" , "three" , "four"
puts "7 a[2..4] = \"two\" , \"three\" , \"four\" => #{a.inspect}"
a[2,3] = 2 , 3 , 4
puts "8 a[2,3] = 2 , 3 , 4 => #{a.inspect}"

#joining the elements
a = ["a" , 2 , "c" , "d"]
puts "9 a.join = #{a.join}"
puts "10 a.join(\"~\") = #{a.join("~")}"

#compact
a = [nil , 1 , 9 , nil , 10 ]
puts "11 a=#{a.inspect}     a.compact = #{a.compact.inspect}"

#shift , unshift
a = [4,5,6,7]
puts "12 a=#{a.inspect}   a.shift=#{a.shift}   now a=#{a.inspect}"
puts "13 a.unshift(9) = #{a.unshift(9).inspect}"

#deleting elements
a = Array(1..6) + Array(1..6)
puts a.delete(2)
puts "14 a.delete(2) = #{a.inspect}" #removed all instances of 2
puts "15 a.delete(7){\"oops! no 7\"} = #{a.delete(7){"oops! no 7"}.inspect}"
puts "16 a.delete(5){\"oops! no 5\"} = return #{a.delete(5){"oops! no 5"}.inspect} , and a=#{a.inspect}"

#iterating with each
a = ["one" , "two" , "three" , "four" ]
print "17 "
a.each{ |e| print e.capitalize + " " }

#map is like each, but it returns a new array
puts "18 a.map{ |e| e[0] = \"X\" ; e } = #{a.map{ |e| e[0] = "X" ; e }.inspect}"

#sort and reverse
a = [9 , 1 , 2 , 92 , 2 , 29 , 34 , 15 , 44 , 37]
puts "19 a=#{a.inspect}       a.sort = #{a.sort!.inspect}"
puts "20 a.reverse = #{a.reverse.inspect}"

#two dimensional arrays (always an array of arrays) , flatten , transpose
a = [ ["x" , "y"],
      [0   , 0  ],
      [1   , 2  ],
      [2   , 4  ],
      [3   , 6  ] ]
puts "21 a = #{a.inspect}"
a<<[4,8]
puts "22 a<<[4,8] = #{a.inspect}"
a<<"done"
puts "23 a<<\"done\" = #{a.inspect}"
puts "24 a.flatten = #{a.flatten.inspect}"
a.pop
puts "25 pre: a=#{a.inspect}"
puts "25 a.transpose = #{a.transpose.inspect}"
puts "26 a.transpose.transpose = #{a.transpose.transpose.inspect}"

#arrays
x = Array.new
puts "1 [].empty? = #{[].empty?}"
puts "2 [2,3].empty? = #{[2,3].empty?}"
x = Array.new(12)
puts "3 Array.new(12).length = #{Array.new(12).length}"
puts "4 Array.new(12).inspect = #{Array.new(12).inspect}" 
puts "5 Array.new(12).clear.inspect = #{Array.new(12).clear.inspect}"

x = Array.new(10){ |i| i = 2*i }
puts "6 #{x.inspect}"
puts "7 Array(0..9) = #{Array(0..9).inspect}"
puts "8 %w(jan feb mar) = #{%w(jan feb mar).inspect}"
puts "9 Array(0..9)[-1] = #{Array(0..9)[-1]}"


Output:
1 intersection: [1, 3, 5, 7] & [2, 4, 6, 7] = [7]
2 union: [1, 3, 5, 7] | [2, 4, 6, 7] = [1, 3, 5, 7, 2, 4, 6]
3 difference: [1, 3, 5, 7] - [2, 4, 6, 7] = [1, 3, 5]
4 difference: [2, 4, 6, 7] - [1, 3, 5, 7] = [2, 4, 6]
5 push: [1, 3, 5, 7, 4]
6 pop: 4 , [1, 3, 5, 7]
7 a[2..4] = "two" , "three" , "four" => [0, 1, "two", "three", "four", 5, 6]
8 a[2,3] = 2 , 3 , 4 => [0, 1, 2, 3, 4, 5, 6]
9 a.join = a2cd
10 a.join("~") = a~2~c~d
11 a=[nil, 1, 9, nil, 10]     a.compact = [1, 9, 10]
12 a=[4, 5, 6, 7]   a.shift=4   now a=[5, 6, 7]
13 a.unshift(9) = [9, 5, 6, 7]
2
14 a.delete(2) = [1, 3, 4, 5, 6, 1, 3, 4, 5, 6]
15 a.delete(7){"oops! no 7"} = "oops! no 7"
16 a.delete(5){"oops! no 5"} = return 5 , and a=[1, 3, 4, 6, 1, 3, 4, 6]
17 One Two Three Four 18 a.map{ |e| e[0] = "X" ; e } = ["Xne", "Xwo", "Xhree", "Xour"]
19 a=[9, 1, 2, 92, 2, 29, 34, 15, 44, 37]       a.sort = [1, 2, 2, 9, 15, 29, 34, 37, 44, 92]
20 a.reverse = [92, 44, 37, 34, 29, 15, 9, 2, 2, 1]
21 a = [["x", "y"], [0, 0], [1, 2], [2, 4], [3, 6]]
22 a<<[4,8] = [["x", "y"], [0, 0], [1, 2], [2, 4], [3, 6], [4, 8]]
23 a<<"done" = [["x", "y"], [0, 0], [1, 2], [2, 4], [3, 6], [4, 8], "done"]
24 a.flatten = ["x", "y", 0, 0, 1, 2, 2, 4, 3, 6, 4, 8, "done"]
25 pre: a=[["x", "y"], [0, 0], [1, 2], [2, 4], [3, 6], [4, 8]]
25 a.transpose = [["x", 0, 1, 2, 3, 4], ["y", 0, 2, 4, 6, 8]]
26 a.transpose.transpose = [["x", "y"], [0, 0], [1, 2], [2, 4], [3, 6], [4, 8]]
1 [].empty? = true
2 [2,3].empty? = false
3 Array.new(12).length = 12
4 Array.new(12).inspect = [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]
5 Array.new(12).clear.inspect = []
6 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
7 Array(0..9) = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
8 %w(jan feb mar) = ["jan", "feb", "mar"]
9 Array(0..9)[-1] = 9


Create a new paste based on this one


Comments:
posted by joshua_cheek on Nov 15
My notes from when I read Learning Ruby
(I didn't expect anyone else to look at them, but a friend asked for info on Ruby)
reply