Charity – Categorical programming language (1998)

· open-source · Source ↗

TLDR

  • Charity is a 1998 University of Calgary functional language grounded in categorical type theory, guaranteeing total termination via catamorphisms and anamorphisms.

Key Takeaways

  • Built on strong categorical datatypes split into inductive (constructors/folds) and coinductive (destructors/unfolds) classes.
  • All Charity programs are guaranteed to terminate, excluding non-termination caused by user input.
  • Supports higher-order functions, lazy evaluation, and purity, targeting declarative programmers familiar with functional or logic paradigms.
  • Designed for program specification, transformation, and verification, with straightforward equational reasoning baked into the model.
  • Archived GitHub mirror at mietek/charity-lang preserves interpreters and literature from the original Calgary group.

Hacker News Comment Review

  • No substantive HN discussion yet.

Original | Discuss on HN