Unification as a means of completing partial data structures
One of the fundamental differences in the semantics of functional and logic programming is the way in which we bind variables. In a logic programming language, variables are allowed to be free for as long as the inference engine does not arrive at contradictory bindings during unification.
Such existential values allow us to defer a computation into the future much like lazy evaluation. However, unlike a pure functional language with lazy evaluation, a functional logic language allow functions to return partial data structures (containing unification variables), which may later be unified with complete structures (not containing such).
In this paper, we will present the approach less formally, by comparing an extended Haskell-like functional programming language naively, by the kind of existential variables found in SWI Prolog.
Sat 17 JunDisplayed time zone: Eastern Time (US & Canada) change
09:00 - 11:00 | |||
09:00 20mTalk | Matrix Decompositions over Database Joins DRAGSTERS Dan Olteanu University of Zurich, Nils Vortmeier Ruhr University Bochum, Dorde Zivanovic University of Oxford | ||
09:20 20mTalk | NASOQ: Numerically Accurate Sparsity-Oriented QP Solver DRAGSTERS | ||
09:40 20mTalk | UniSparse: An Intermediate Language and Compiler for General Sparse Format Customization DRAGSTERS Jie Liu Cornell University, Zhongyuan Zhao , Zijian Ding Peking University, Benjamin Brock Parallel Computing Lab (PCL), Intel, Hongbo Rong Intel Labs, Zhiru Zhang Cornell University, USA | ||
10:00 20mTalk | Unification as a means of completing partial data structures DRAGSTERS Joachim Kristensen University of Oslo, Robin Kaarsgaard University of Southern Denmark, Michael Kirkedal Thomsen University of Oslo & University of Copenhagen | ||
10:20 20mTalk | Formalizing DRAGSTERS DRAGSTERS Scott Kovach Stanford University | ||
10:40 20mTalk | Scaling Decision--Theoretic Probabilistic Programming Through Factorization DRAGSTERS |