Standard ML Programming/Examples and Exercises
Values and Functions
edit- Indicate the identifiers, keywords, and special constants in the following piece of code. What is the value of the second
a
?
val a = 5 val b = 9 val a = 2*a+b;
- Construct a tuple with 4 positions and 3 components.
- What is the type of t?
fun f a = 2 val t = (true,f,f 1);
- Write a function that returns the value 2 for the arguments 0, 1 and 2 and returns 3 for all other arguments.
- Write a function that returns -1 for all negative and +1 for all positive arguments and 0 for the argument 0.
- Create a function min(a:int,b:int) that returns the smaller one of its 2 arguments. Do the separation of the argument values in 3 different ways. Using a Cartesian argument-pattern, using a projection and using a local declaration.
(solutions to this chapter are here)
Recursion
edit- Create a function power9(x) that calculates the 9th power of x. Preferably using as few multiplications as possible.
- Calculate the greatest common denominator from 2 positive integer arguments.
- Calculate mul(n,z)=n*z without using the * operator for and
- Calculate power2(n) by only using addition and resursion. (hint: it is possible to rewrite the square function as a summation of natural numbers.)
(solutions to this chapter are here)