Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- change_list([], _, _, []) :- !.
- change_list([Head|Tail], Head, Y, [Y|Result]):- change_list(Tail, Head, Y, Result), !.
- change_list([Head|Tail], X, Y, [Head|Result]):- change_list(Tail, X, Y, Result).
- generate_down(1, [1]).
- generate_down(N, [N|Tail]):-N1 is N-1, generate_down(N1,Tail).
- generate_up(N, N, [N]) :- !.
- generate_up(N, I, [I|Tail]):- I1 is I + 1, generate_up(N, I1, Tail).
- generate_up(N, Result) :- generate_up(N, 1, Result).
- generate_random_1_100(N, Result):- randset(N, 100, Result).
- generate_random_M_K(N, M, K, N, [Result]) :- random_between(M, K, Result).
- generate_random_M_K(N, M, K, I, [Head|Tail]):- I1 is I + 1, random_between(M, K, Head), generate_random_M_K(N, M, K, I1, Tail).
- generate_random_M_K(N, M, K, Result) :- generate_random_M_K(N, M, K, 1, Result).
- generate_random_size_M_K(M, K, Result) :- random_between(1, 10, N), generate_random_M_K(N, M, K, Result).
- intToString(0, "Ноль").
- intToString(1, "Один").
- intToString(2, "Два").
- intToString(3, "Три").
- intToString(4, "Четыре").
- intToString(5, "Пять").
- intToString(6, "Шесть").
- intToString(7, "Семь").
- intToString(8, "Восемь").
- intToString(9, "Девять").
- intsToStrings([], []) :- !.
- intsToStrings([Head|Tail], [HeadResult|TailResult]):-intToString(Head, HeadResult), intsToStrings(Tail, TailResult).
- list_x2([], []) :- !.
- list_x2([Head|Tail], [HeadResult|TailResult]):- HeadResult is Head*2, list_x2(Tail, TailResult).
- intsToAbs([], []) :- !.
- intsToAbs([Head|Tail], [HeadResult|TailResult]):- HeadResult is abs(Head), intsToAbs(Tail, TailResult).
- list_to_negative_positions([], _, []) :- !.
- list_to_negative_positions([Head|Tail], I, [I|TailResult]) :- Head < 0, !, I1 is I+1, list_to_negative_positions(Tail, I1, TailResult).
- list_to_negative_positions([Head|Tail], I, Result) :- Head >= 0, !, I1 is I+1, list_to_negative_positions(Tail, I1, Result).
- list_to_negative_positions([Head|Tail], Result) :- list_to_negative_positions([Head|Tail], 1, Result).
- delete_even_positions([], _, []) :- !.
- delete_even_positions([Head|Tail], I, [Head|TailResult]) :- I mod 2 =\= 0, !, I1 is I+1, delete_even_positions(Tail, I1, TailResult).
- delete_even_positions([_|Tail], I, Result) :- I mod 2 =:= 0, !, I1 is I+1, delete_even_positions(Tail, I1, Result).
- delete_even_positions([Head|Tail], Result) :- delete_even_positions([Head|Tail], 1, Result).
- split_pos_neg([], [], []) :- !.
- split_pos_neg([Head|Tail], [PosHeadResult|PosTailResult], Result) :- Head >= 0, !, PosHeadResult is Head, split_pos_neg(Tail, PosTailResult, Result).
- split_pos_neg([Head|Tail], Result, [NegHeadResult|NegTailResult]) :- Head < 0, !, NegHeadResult is Head, split_pos_neg(Tail, Result, NegTailResult).
- split_odd_even_positions([], _, [], []) :- !.
- split_odd_even_positions([_|Tail], I, [EvenHeadResult|EvenTailResult], Result) :- I mod 2 =:= 0, !, EvenHeadResult is I, I1 is I+1, split_odd_even_positions(Tail, I1, EvenTailResult, Result).
- split_odd_even_positions([_|Tail], I, Result, [OddHeadResult|OddTailResult]) :- I mod 2 =\= 0, !, OddHeadResult is I, I1 is I+1, split_odd_even_positions(Tail, I1, Result, OddTailResult).
- split_odd_even_positions([Head|Tail], EvenResult, OddResult) :- split_odd_even_positions([Head|Tail], 1, EvenResult, OddResult).
- delete_last_n([Head|Tail], N, [HeadResult|TailResult]) :- length([Head|Tail], L), L - N > 0, !, HeadResult is Head, delete_last_n(Tail, N, TailResult).
- delete_last_n([Head|Tail], N, []) :- length([Head|Tail], L), L =:= N, !.
- split_from_beg([], _, [], []) :- !.
- split_from_beg([Head|Tail], N, [BegHeadResult|BegTailResult], Result) :- length([Head|Tail], L), L - N > 0, !, BegHeadResult is Head, split_from_beg(Tail, N, BegTailResult, Result).
- split_from_beg([Head|Tail], N, Result, [EndHeadResult|EndTailResult]) :- length([Head|Tail], L), L - N =< 0, !, EndHeadResult is Head, split_from_beg(Tail, N, Result, EndTailResult).
- delete_beforelast_elem([], []).
- delete_beforelast_elem([Head|Tail], [HeadResult|TailResult]) :- length([Head|Tail], L), L > 1, HeadResult is Head, delete_beforelast_elem(Tail, TailResult), !.
- delete_beforelast_elem([_|Tail], Tail) :- length(Tail, L), L =:= 1, !.
- change_2_in_the_row([], []) :- !.
- change_2_in_the_row([Head|[Head|TailsTail]], [Head|TailResult]):- change_2_in_the_row(TailsTail, TailResult), !.
- change_2_in_the_row([Head|Tail], [Head|TailResult]) :- change_2_in_the_row(Tail, TailResult), !.
- swap([Head, SecondsHead|SecondsTail], 1, 2, [SecondsHead, Head|SecondsTail]) :- !.
- swap([Head, SecondsHead|SecondsTail], 1, I, [HeadResult, SecondsHead|TailResult]) :- I1 is I - 1, swap([Head|SecondsTail], 1, I1, [HeadResult|TailResult]), !.
- swap([Head|Tail], I, J, [Head|TailResult]) :- I1 is I - 1, J1 is J - 1, swap(Tail, I1, J1, TailResult), !.
- leftShift([Head|Tail], Result) :- append(Tail, [Head], Result).
- rightShift(List, Result) :- last(List, Last), delete_last_n(List, 1, TempResult), append([Last], TempResult, Result).
- mult_Lists_elem_by_elem(_, [], []) :- !.
- mult_Lists_elem_by_elem([], _, []) :- !.
- mult_Lists_elem_by_elem([Head1|Tail1], [Head2|Tail2], [HeadResult|TailResult]) :- HeadResult is Head1 * Head2, mult_Lists_elem_by_elem(Tail1, Tail2, TailResult), !.
- scalar_product([], [], 0).
- scalar_product([Head1|Tail1], [Head2|Tail2], Result) :- scalar_product(Tail1, Tail2, Result2), Result is Result2 + Head1*Head2, !.
- append_after_pos(List1, [Head2|Tail2], 1, Result) :- append([Head2], List1, Result2), append(Result2, Tail2, Result), !.
- append_after_pos(List1, [Head2|Tail2], Pos, [Head2|TailResult]) :- Pos > 1, I is Pos - 1, append_after_pos(List1, Tail2, I, TailResult), !.
- sym_raz([], _, []).
- sym_raz([Head1|Tail1], Set2, [Head1|TailResult]) :- not(member(Head1, Set2)), sym_raz(Tail1, Set2, TailResult), !.
- sym_raz([_|Tail1], Set2, Result) :- sym_raz(Tail1, Set2, Result), !.
- xor(X, Y, R) :- sym_raz(X, Y, R1), sym_raz(Y, X, R2), union(R1, R2, R).
- last_enter([_|Tail], Char, I, Result) :- I1 is I+1, last_enter(Tail, Char, I1, Result), !.
- last_enter([Char|_], Char, I, I) :- !.
- last_enter(String, Char, Result) :- string_to_list(String, List), char_code(Char, CharCode), last_enter(List, CharCode, 1, Result).
- count_latin_list([], 0) :- !.
- count_latin_list([Head|Tail], Result) :- (Head >= 65, Head=<90 ; Head >= 97, Head=<122) -> count_latin_list(Tail, R), Result is R+1; count_latin_list(Tail, Result).
- count_latin(String, Result) :- string_to_list(String, List), count_latin_list(List, Result).
- palindrome(String) :- string_lower(String, StringLower), string_chars(StringLower, ListChars), reverse(ListChars, ReversedListChars), ListChars == ReversedListChars -> true; false.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement