% Definición de relaciones familiares % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mujer(X). abuelo(X, Y) :- padre(X, Z), padre(Z, Y); padre(X, Z), madre(Z, Y). abuela(X, Y) :- madre(X, Z), madre(Z, Y); madre(X, Z), padre(Z, Y). % Predicado para verificar si alguien es mujer mujer(ana). mujer(maria). mujer(laura). % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mujer(X). abuelo(X, Y) :- padre(X, Z), padre(Z, Y); padre(X, Z), madre(Z, Y). abuela(X, Y) :- madre(X, Z), madre(Z, Y); madre(X, Z), padre(Z, Y). % Predicado para verificar si alguien es mujer mujer(ana). mujer(maria). mujer(l % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mujer(X). abuelo(X, Y) :- padre(X, Z), padre(Z, Y); padre(X, Z), madre(Z, Y). abuela(X, Y) :- madre(X, Z), madre(Z, Y); madre(X, Z), padre(Z, Y). % Predicado para verificar si alguien es mujer mujer(ana % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mujer(X). abuelo(X, Y) :- padre(X, Z), padre(Z, Y); padre(X, Z), madre(Z, Y). abuela(X, Y) :- madre(X, Z), madre(Z, Y); madre(X, Z), padre(Z, Y). % Predicado para verificar si a % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mujer(X). abuelo(X, Y) :- padre(X, Z), padre(Z, Y); padre(X, Z), madre(Z, Y). abuela(X, Y) :- madre(X, Z), madre(Z, Y); madre(X, Z), padre(Z, Y). % Predic % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mujer(X). abuelo(X, Y) :- padre(X, Z), padre(Z, Y); padre(X, Z), madre(Z, Y). abuela(X, Y) :- madre(X, Z), madre( % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mujer(X). abuelo(X, Y) :- padre(X, Z), padre(Z, Y); padre(X, Z), madre(Z, Y % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mujer(X). abuelo(X, Y) :- padre(X, Z), % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y. hermana(X, Y) :- hermano(X, Y), mu % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), madre(W, X), madre(W, Y), X \= Y % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X), padre(Z, Y), % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas hermano(X, Y) :- padre(Z, X % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laura). % reglas % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre(maria, laur % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). madre % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pedro, carlos). % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, maria). padre(pe % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). madre(ana, ma % hechos padre(juan, maria). padre(juan, pedro). madre(ana, pedro). % hechos padre(juan, maria). padre(juan, pedro). madr % hechos padre(juan, maria). padre(juan % hechos padre(juan, mari % hechos pa ?- hermano(pedro, maria). true. ?- abuela(ana, carlos). true.
Write, Run & Share Prolog code online using OneCompiler’s Prolog online compiler for free. It’s a simple and intuitive platform to experiment with logic programming in Prolog. OneCompiler supports standard Prolog syntax, great for learning, prototyping, and practicing logic-based problems.
Prolog (Programming in Logic) is a logic programming language associated with artificial intelligence and computational linguistics. It works through facts, rules, and queries, using a form of symbolic reasoning known as backward chaining. Prolog is declarative, meaning you describe what you want instead of how to compute it.
The following is a simple Prolog program that prints a greeting:
:- initialization(main).
main :-
write('Hello, World!').
Facts represent basic assertions about the world.
likes(alice, pizza).
likes(bob, pasta).
Rules define logical relationships using facts.
friends(X, Y) :- likes(X, Z), likes(Y, Z).
Queries are used to find information based on facts and rules.
?- likes(alice, What).
Operator | Description |
---|---|
:- | Rule definition |
, | Logical AND |
; | Logical OR |
= | Unification |
member(X, [X|_]).
member(X, [_|T]) :- member(X, T).
Prolog heavily relies on recursion.
factorial(0, 1).
factorial(N, F) :-
N > 0,
N1 is N - 1,
factorial(N1, F1),
F is N * F1.
This guide provides a quick reference to Prolog programming syntax and features. Start writing Prolog code using OneCompiler’s Prolog online compiler today!