Chapter 3 Reading Guide
You should use valid Haskell types in all of your answers. Unless needed, I stick with Int for the type for integers.
Basics
-
How do you find the type of an expression (when using the interpreter)?
-
What is the type of a string, written in correct Haskell type syntax?
-
What is the type of the expression (5 == 5)?
-
What is the type signature for a function that takes in an integer and puts out a string?
-
What is the type signature for a function that takes in two integers and multiplies them?
-
What is the type of (factorial 50) from the book? How is that different from an Int?
-
Write the signature of a function
prob7
that takes in a number (an integer) and puts out a string. -
What is the correct way to write the type signature of a function
prob8
that take single number (integer) and a list of numbers (integers) and puts out a list of numbers (integers)? -
Find out the difference between Float and Double. Summarize it here.
-
How can you tell whether the text “string” in a program refers to a variable or a type?
-
Write the type signature for:
- snd
- repeat
- init
Class Constraints
-
Where can you find a class constraint?
-
What special symbol separates a class constraint from a function’s type?
-
What is the best type to give the function:
mystery a b = if ( a < b ) then "A small" else "A large"
-
What familiar typeclass indicates that something can be written in string form?
The Read Typeclass
- What does being in the Read typeclass indicate?
- How can you convert the string “10230” to an integer?
Miscellaneous Typeclasses
- What is the main use of the Enum typeclass?
- Aside from integers, give two other examples of things in the Enum typeclass.
- What typeclass tells you that something has a largest and smallest value?
- How would you find the smallest possible Int in Haskell?
Math
- What is the difference between 5 and (5 :: Int)?
- Can you do this math?
- 3.2 * (5 :: Int)
- 5.63 * 20
- What will happen when you use the following function? listBigSize aList = 3 * (length aList)
Integral vs Floating
-
The last function discussed in the chapter is the most important by far.
- Write its name and signature here.
- What is it used for?
-
Programming exercise: the quadratic formula. Write and test a function that takes in a,b, and c, and produces the larger root of ax^2+bx+c. (Assume there is at least one real root.)