arXiv · 2604.26161
Finite Functional Programming
Abstract
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.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Michael Arntzenius, Max Willsey. 2026-04-28. Finite Functional Programming. https://arxiv.org/abs/2604.26161
Cite the original work for its findings. Save a collection to share your selection of sources.