Another way to think of a Scheme program is as a big machine made up of a bunch of smaller machines. For example, to make a machine that does 4 + 3 * 7, you would need one machine to multiply 3 by 7 and another to add 4 to that.
 
 
Here is a machine that can add. It can take any number of arguments at the top and returns one answer at the bottom. Here is a machine that can multiply. It can take any number of arguments at the top and returns one answer at the bottom.

Here is how you put them together to get a machine that calculates 4 + 3 * 7:




Once you have the machine, you can write the Scheme code without too much trouble. Start at the bottom and work your way up.



Now try sketching a machine that calculates square root(32 + 42).