Substitution is best done using an editor where one can easily cut and paste. If you learn the substitution model and apply it to analyzing your programs in Scheme when your are stuck, you will find that it is a powerful tool for programming. You will also find it is handy on the exam. Sometimes its advantageous to write procedures which are capable of taking their arguments one at a time. We call such functions curried in honor of their inventor, Haskell Curry.
Many programming languages support currying directly.
We can simulate currying in Scheme by using lambda. Another interesting example of the use of curried functions comes from Newton's law of gravity. Any function of more than one argument can always be translated into a procedure that takes a single arguments and returns a procedure that then takes the next one. Variable Arity Procedures Arity refers to the number of arguments a procedure has. For example, squareroot is typically unary , that is it has one argument.