Symbolic Computing with LISP and PROLOG

LISP PROLOG and denotational programming LISP - notations for data in LISP functions building lists and extracting components more list manipulation functions a lenient function: "if" naming partial results: "let" recursion debugging more lenient functions: "and, or" pumping divide and conquer input and output higher order functions numbers PROLOG - notation for data and variables in PROLOG propositional facts, rules, and queries relations containing variables unification: how the interpreter instantiates variables recursion propagation and accumulation of results divide and conquer "and/or" control flow saving computation with embedded "or" control "not" backtracking generating all solutions using "Bagof" and "Setof" inhibiting backtracking built-in relations for program file access and transformation of terms program construction and debugging numbers input and output declarative and procedural semantics of logic prog