Ruby review for the final.
m = 0
# we are calling a method "times" on an object 5
# and are apssing the block in {} as an argument
5.times {|i| m = m + i * i}
puts m
# array methods:
# what will be printed?
[3, "hi", true,8.8].each {|x| puts x.is_a? String}
#Ruby hashes
# what will be printed by this fragment?
hash = {:a => 5, :b => 3, :c => 7, :d => 4}
k = nil
m = 0
hash.each do |key, value|
if value > m
k = key
m = value
end
end
puts k
# Ruby blocks and lambdas
def f pred, x, y
if pred.call(x) then x else y end
end
puts f lambda {|x| x < 5}, 7, 6
def g
yield(1) + 2
end
puts g {|x| x * 2}
def h x
yield(x * x)
end
puts h (2) {|y| y + 3}
# the same as the previous example
def h1 x, &b
b.call(x * x)
end
puts h1 (2) {|y| y + 3}
CSci 4651
course web site.