def compose proc1, proc2
Proc.new do |x|
proc2.call(proc1.call(x))
end
end
double = Proc.new do |x|
x * 2
end
square = Proc.new do |x|
x * x
end
doubleThenSquare = compose double, square
squareThenDouble = compose square, double
puts doubleThenSquare.call(5)
puts squareThenDouble.call(5)
To embed this project on your website, copy the following code and paste it into your website's HTML: