We discuss the virtues of PROLOG in comparison to LISP, we come to the conclusion that: "If you can't fight them, JOIN them". We propose, as a solution, the APPLOG language which is a mixture of LISP and PROLOG. APPLOG is embedded within the PROLOG language and thus the facilities of PROLOG can be used through a simple goal function.

APPLOG is an applicative language where functions are applied to arguments. APPLOG variables are compatible with PROLOG variables and serve as a mean for data transfer between APPLOG and PROLOG. APPLOG supports lambda and nlambda functions definitions and one-to-one, one-to-many and mixed binding mechanism like INTERLISP.

The main advantage of APPLOG is the simple integration of LISP and PROLOG into ONE powerful language which hopefully incorporates the best features of both languages. We also extended APPLOG to a simple relational database query language which is similar to Query-by-example and includes: Aggregates and Grouping.

We provide the full listing of APPLOG interpreter including: pretty-print, load, trace, toploop, history, autoload, Interface Interface to relational database.

APPLOG has the following advantages over traditional LISP languages: (1) Pattern directed invocation. (2) Call by reference. (3) Interface to PROLOG as a database query language. (4) Operators (infix, prefix, and postfix). (5) Back-tracking. (6) Generators.




Download Full History