 
 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Blocks as Closures: Using Outside Variables Within a Code Block | ||
|---|---|---|
| Code | Expected | Actual | 
| def add_to_all(array, number)
  array.collect { |x| x + number }
end
add_to_all([1, 2, 3], 10) | [11, 12, 13] | [11, 12, 13] | 
| tax_percent = 6
position = lambda do
  "I have always supported a #{tax_percent}% tax on imported limes."
end
position.call | "I have always supported a 6% tax on imported limes." | "I have always supported a 6% tax on imported limes." | 
| tax_percent = 7.25 position.call | "I have always supported a 7.25% tax on imported limes." | "I have always supported a 7.25% tax on imported limes." | 
| counter = 0
4.times { counter += 1; puts "Counter now #{counter}"} | Counter now 1 Counter now 2 Counter now 3 Counter now 4 | Counter now 1 Counter now 2 Counter now 3 Counter now 4 | 
| counter | 4 | 4 | 
| accumulator = []
[1, 2, 3].reverse_each { |x| accumulator << x + 1 }
accumulator | [4, 3, 2] | [4, 3, 2] |