Feb 12, 2018
In simple terms, a total function is a function that produces a well defined output for all possible inputs. A total program is a program composed of only total functions.
A non-total, or partial function, would be a function that can fail given certain inputs. Such as taking the head of a list, which can fail if giving an empty list and is therefore non-total.
Total programming can be done in any language, however many languages make this easier. Some, going so far as to require proof of totality.
In this interview Andre Videla discusses how the swift program language encourages programming in a total style. He also discusses his love of Idris, proof assistants and how his research into haskell, idris and dependant types have made him a better swift programmer.