Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Some simple test Prolog programs
- % --------------------------------
- % Knowledge bases
- аppend([ ], Lista, Lista).
- аppend([ Elem | Lista1], Lista2, [Elem | Lista3]):-
- аppend(Lista1, Lista2, Lista3).
- list_rList([],[]).
- list_rList([H|T],R):- list_rList(T,RevT), append(RevT,[H],R).
- m2([A|As], [B|Bs], [A,B|Rs]) :-
- !, m2(As, Bs, Rs).
- m2([], Bs, Bs) :- !.
- m2(As, [], As).
- reverse([X|Y], A) :- reverse(Y, Z), reverse(X, Xrev), append(Z, [Xrev], A).
- reverse(X, X) :- X \= [_|_]. % X is not a list, or X is an empty list
- flatten2([], []) :- !.
- flatten2([L|Ls], FlatL) :-
- !,
- flatten2(L, NewL),
- flatten2(Ls, NewLs),
- append(NewL, NewLs, FlatL).
- flatten2(L, [L]).
- remove_elem([], _, []).
- remove_elem([Element | Rest], Element, Result) :-
- !,
- remove_elem(Rest, Element, Result).
- remove_elem([X | Rest], Element, [X | Result]) :-
- remove_elem(Rest, Element, Result).
- replace([_|T], 0, X, [X|T]).
- replace([H|T], I, X, [H|R]) :-
- I > 0,
- I1 is I - 1,
- replace(T, I1, X, R).
- replace1(L, I, X, R) :-
- Dummy =.. [dummy|L],
- J is I + 1,
- nb_setarg(J, Dummy, X),
- Dummy =.. [dummy|R].
- tr(Method, K) :-
- length(L, K),
- K1 is K - 1,
- time(call(Method, L, K1, test, R)),
- assertion(nth1(K, R, test)).
- % ins(Val,List,Pos,Res)
- ins(Val,[H|List],Pos,[H|Res]):- Pos > 1, !,
- Pos1 is Pos - 1, ins(Val,List,Pos1,Res).
- ins(Val, List, 1, [Val|List]).
- /** <examples>
- ?- loves(X, mia).
- ?- jealous(X, Y).
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement