Haskell/Solutions/Variables and functions

From Wikibooks, open books for an open world
Jump to navigation Jump to search

← Back to Variables and functions

Exercises
  • Explain how GHCi evaluates quadruple 5.
  • Define a function that subtracts 12 from half its argument.
quadruple x = double (double x)
quadruple 5 = double (double 5)
quadruple 5 = double 10
quadruple 5 = 20


subtractHalf x = x / 2 - 12


Exercises
  • Write a function to calculate the volume of a box.
  • Approximately how many stones are the famous pyramids at Giza made up of? Use GHCi for your calculations.
volumeBox w h d = w * h * d


One approach for the Giza problem is starting from the pyramid volume and the estimated stone volume. Using general functions for the task, that might look like this in GHCi:

Prelude> let volumeBox w h d = w * h * d -- Just as above.
Prelude> let volumeSquarePyramid b h = b * b * h / 3
Prelude> volumeSquarePyramid 230.4 146.5 / volumeBox 1 1 1
2592276.48


Exercises
  • Write a function to calculate the volume of a cylinder.
volumeCylinder r h = h * area r