PLApr 28

Finite Functional Programming

arXiv:2604.2616119.2
AI Analysis

For programming language designers, this provides a foundational framework that bridges functional and logic programming paradigms, though it is primarily a theoretical contribution.

The paper unifies functional and logic programming by treating predicates as finitely supported functions, enabling representation as input-output tables. This approach handles aggregation and weighted logic programming, and a type system using graded effects and relevance types ensures finite support.

We unify functional and logic programming by treating predicatesas functions equipped with their support: the set of inputs whose output is nonzero. Datalog, for instance, is a language of finitely supported boolean functions. Finite support allows representing functions as input-output tables. Generalizing from boolean functions to other pointed sets neatly handles aggregation and weighted logic programming. We refer to the combination of finitely supported functions, represented as data, with higher order functions, represented as code, as finite functional programming. We give a simple type system to check finite support, using graded effects to check variable grounding and relevance types to model pointed sets.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes