# Control Structures and Functions in Scala

• Print
This chapter is from the book

## Exercises

1. The signum of a number is 1 if the number is positive, –1 if it is negative, and 0 if it is zero. Write a function that computes this value.
2. What is the value of an empty block expression {}? What is its type?
3. Come up with one situation where the assignment x = y = 1 is valid in Scala. (Hint: Pick a suitable type for x.)
4. Write a Scala equivalent for the Java loop

`for (int i = 10; i >= 0; i--) System.out.println(i);`
5. Write a procedure countdown(n: Int) that prints the numbers from n to 0.
6. Write a for loop for computing the product of the Unicode codes of all letters in a string. For example, the product of the characters in "Hello" is 9415087488L.
7. Solve the preceding exercise without writing a loop. (Hint: Look at the StringOps Scaladoc.)
8. Write a function product(s : String) that computes the product, as described in the preceding exercises.
9. Make the function of the preceding exercise a recursive function.
10. Write a function that computes xn, where n is an integer. Use the following recursive definition:

• xn = y2 if n is even and positive, where y = xn / 2.
• xn = xn – 1 if n is odd and positive.
• x0 = 1.
• xn = 1 / xn if n is negative.

Don’t use a return statement.