A programming language based on CategoryTheory. CharityLanguage isn't TuringComplete, because it lacks general recursion, but it's very expressive. Recursion is based on induction over data-types and is defined formally as the FoldFunction for such data-type.

Innovative organization: based on theory of strong categorical datatypes divided into 2 subclasses: inductive (built up by constructors in the familiar way), and coinductive (broken down by destructors).

All Charity computations terminate (up to user input).

----
http://www.cpsc.ucalgary.ca/Research/charity/home.html  [[BrokenLink]]
----
CategoryProgrammingLanguage, CategoryBasedLanguage (based on CategoryTheory :-)