位Prolog is a programming language created in 1986 by Gopalan Nadathur and Dale Miller.
#1564on PLDB | 39Years Old |
位Prolog, also written lambda Prolog, is a logic programming language featuring polymorphic typing, modular programming, and higher-order programming. These extensions to Prolog are derived from the higher-order hereditary Harrop formulas used to justify the foundations of 位Prolog. Higher-order quantification, simply typed 位-terms, and higher-order unification gives 位Prolog the basic supports needed to capture the 位-tree syntax approach to higher-order abstract syntax, an approach to representing syntax that maps object-level bindings to programming language bindings. Read more on Wikipedia...
reverse L K :- pi rev \
(rev nil K &
(pi H\ pi T\ pi S\ rev (H::T) S :- rev T (H::S)))
=> rev L nil.
?- reverse [1, 2, 3] L.
Success:
L = 3 :: 2 :: 1 :: nil