Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- implement main
- open core
- % facts
- class facts - parentDB
- parent : (string Parent, string Children).
- % is parent
- class predicates
- is_parent: (string Parent, string Children) nondeterm (i,i).
- clauses
- is_parent(Parent, Children) :-
- parent(Parent, Children).
- % get children
- class predicates
- get_children: (string Parent, string Children) nondeterm (i,o).
- clauses
- get_children(Parent, Children) :-
- parent(Parent, Children).
- % get parent
- class predicates
- get_parent: (string Children, string Parent) nondeterm (i,o).
- clauses
- get_parent(Children, Parent) :-
- parent(Parent, Children).
- % print all
- class predicates
- print_all: (string*, string*) nondeterm.
- clauses
- print_all([], []).
- print_all([HParent|TParent], [HChildren|TChildren]) :-
- stdio::writef("Родитель: %, ребёнок: %\n", HParent, HChildren),
- print_all(TParent, TChildren).
- % queries
- class predicates
- query_marina_sasha: ().
- query_aleksey_olga: ().
- query_nikolai_children: ().
- query_ivan_parent: ().
- query_print_all: ().
- clauses
- query_marina_sasha() :-
- is_parent("Марина", "Саша"),
- !,
- stdio::write("Марина родитель Саши\n")
- ;
- stdio::write("Марина НЕ родитель Саши\n").
- query_aleksey_olga() :-
- is_parent("Алексей", "Ольга"),
- !,
- stdio::write("Алексей родитель Ольги\n")
- ;
- stdio::write("Алексей НЕ родитель Ольги\n").
- query_nikolai_children() :-
- get_children("Николай", Children),
- !,
- stdio::writef("% - ребёнок Николая\n", Children)
- ;
- stdio::write("У Николая нет детей\n").
- query_ivan_parent() :-
- get_parent("Иван", Parent),
- !,
- stdio::writef("% - родитель Ивана\n", Parent)
- ;
- stdio::write("У Ивана нет родителей\n").
- query_print_all() :-
- LParent = [Children || parent(_, Children)],
- LChildren = [Parent || parent(Parent, _)],
- print_all(LParent, LChildren),
- !;
- succeed().
- % data
- clauses
- parent("Илья", "Марина").
- parent("Марина", "Ира").
- parent("Елена", "Иван").
- parent("Николай", "Ира").
- parent("Ольга", "Алексей").
- parent("Марина", "Саша").
- parent("Сергей", "Иван").
- % main
- clauses
- run() :-
- console::init(),
- stdio::write("\nЗапрос №1:\n"),
- query_marina_sasha(),
- stdio::write("\nЗапрос №2:\n"),
- query_aleksey_olga(),
- stdio::write("\nЗапрос №3:\n"),
- query_nikolai_children(),
- stdio::write("\nЗапрос №4:\n"),
- query_ivan_parent(),
- stdio::write("\nЗапрос №5:\n"),
- query_print_all().
- end implement main
- goal
- mainExe::run(main::run).
Advertisement
Add Comment
Please, Sign In to add comment