Total Functional Programming

Notes

  • Total functional programming excludes the possibility of non-termination.
  • fib function will not compile in Haskell 2010 due to later standard not supporting n + k patterns.
  • Haskell 2010 version can be writen as follows,
    1
    fib n
    2
    | n == 0 = 0
    3
    | n == 1 = 1
    4
    | otherwise = fib (n-1) + fib (n - 2)
    Copied!
  • In a non total language, each type contains a βŠ₯ (bottom).
  • In a non-total language such as Haskell, even simple natural identity such as e - e = 0 cannot be assumed to hold true equationally due to the presence of βŠ₯.
Last modified 1yr ago
Copy link
Contents
Notes