The idea that one expresses a program in logic. The most familiar logic
programming language is Prolog - see my notes for the expert systems
lecture. Here's an example (somewhat simplified, so not quite correct
Prolog). Lisp is one of the two main AI languages; Prolog is the other.
In this example, :-
means ``if'' and ,
means ``and''.
replace(Board,NewBoard) :- at(Board,From,Piece), is(Piece,pawn), % if there's a pawn at From at(Board,To,_), % and any piece at To one_diagonal_ahead(From,To), % one diagonal forward copy(Board,NewBoard), % then the new state of the board is like Board make_empty(NewBoard,From), % but with From empty move(NewBoard,Piece,From,To). % and the pawn at To.