Lambda calculus is the basis of any and all functional languages. A major aspect of any functional language is the use of recursion. Some problems in computer science are primarily, or can only be thought of in recursive terms, such as traversing a tree. In other cases, you can take an iterative problem and turn it into a recursive problem. Think of the idea of multiplication between positive numbers as repeatedly adding a number to itself n times, e.g:
int mult(x, y) {
int temp = x;
for (int i = 1; i < y; i++) {
temp += x;
}
return temp;
}
Now try to do this recursively. Feel free to add as many helper functions as you want, but you must only use addition and subtraction to achieve your goal. No multiplication should be used, and again, no need to worry about negative numbers.