Lexical closures are created with proc function:
def power_of(n) return proc do |p| p ** n end end squared = power_of(2) cubed = power_of(3) squared.call(3) => 9 cubed.call(3) => 27