title: What is "Total Functional Programming"?
body: <p><a href="http://en.wikipedia.org/wiki/Total_functional_programming" rel="noreferrer">Wikipedia</a> has this to say:</p>
  
  <blockquote>
    <p>Total functional programming (also
    known as strong functional
    programming, to be contrasted with
    ordinary, or weak functional
    programming) is a programming paradigm
    which restricts the range of programs
    to those which are provably
    terminating.</p>
  </blockquote>
  
  <p>and</p>
  
  <blockquote>
    <p>These restrictions mean that total
    functional programming is not
    Turing-complete. However, the set of
    algorithms which can be used is still
    huge. For example, any algorithm which
    has had an asymptotic upper bound
    calculated for it can be trivially
    transformed into a
    provably-terminating function by using
    the upper bound as an extra argument
    which is decremented upon each
    iteration or recursion.</p>
  </blockquote>
  
  <p>There is also a Lambda The Ultimate Post about a paper on <a href="http://lambda-the-ultimate.org/node/2003" rel="noreferrer">Total Functional Programming</a>.</p>
  
  <p>I hadn't come across that until last week on a mailing list.</p>
  
  <p>Are there any more resources, references or any example implementations that you know of?</p>