Lambda Prolog

An extension of the Prolog logic programming language to support simply-typed lambda expressions and some higher-order quantification. It provides for a natural logic programming approach to higher-order programming in the functional sense. Lambda Prolog also supports polymorphism, abstract data types, and modularity: all supported by logic (unlike in Prolog where they are supported by compiler directives, etc). It was the first programming language to offer the lambda-tree syntax approach to higher-order abstract syntax (HOAS). See A the Teyjus compiler is available:

This page is linked from: Escher   Parsing