Declarative programming is often defined as any style of programming that is not imperative. A number of other common definitions attempt to define it by simply contrasting it with imperative programming. For example:
Some logical programming languages, such as Prolog, and database query languages, such as SQL, while declarative in principle, also support a procedural style of programming.
It returns "20 : int". (Both the results and the datatype are returned.)
After all the facts and relationships are entered, then a question can be asked: