# prolog_test тестове завдання на вакансію Prolog Dev --- ``` 1. Описать два лимита на разовую транзакцию, используя Пролог. Описание вида: limit_for_1_tr(Country, LimitSum, LimitCurrency). a. Описать лимит на одну транзакцию в Украине. Сумма лимита - 30 000 грн b. Описать лимит на одну транзакцию в России. Сумма лимита - 50 000 рублей 2. Описать месячный лимит на транзакции по Грузии, используя Пролог, если сумма - 10 000 теньге, количество - 15 транзакций. Описание вида: limit_for_1_month(Country, LimitSum, LimitCount, LimitCurrency). 3. Описать правило акции супермаркета, используя Пролог. Правило: если покупатель купил товар с кодом 5111 акционной группы 565, то ему начисляются двойные бонусы на счет за данный товар. Сумма покупки - 50 грн. Описание вида: bonus_check(GroupProduct, ProductID, CostProduct, Bonus). 4. Реализовать на Прологе функции, используя арифметические операции, рекурсию и паттерн-матчинг: a. train_reverse/2 - на вход получает список вида [1,2,4,3,5] и преобразует его в (->) [5,3,4,2,1] b. train_last_one/2 - на вход получает список вида [1,2,4,3,5] -> 5 c. train_sort_up/2 - сортирует список по возрастанию [3,1,5,2,4] -> [1,2,3,4,5] d. train_summ/2 - на вход получает список вида [1,2,4,3,5] -> 15 (сумма всех элементов) e. train_odds/2 - на вход получает список вида [1,2,4,3,5] -> [2,4] (все четные) f. train_zip/3 - на вход получает 2 списка вида [1,2,4,3,5] и [7,9,11,8,6] -> [[1,7],[2,9],[4,11],[3,8],[5,6]] g. train_append_tail/3 - добавляет элемент в конец списка [1,2,3] и 4 -> [1,2,3,4] (сделать чисто рекурсивную реализацию) h. train_concat/3 - получает на вход 2 списка [1,2,3] & [4,5,6] -> [1,2,3,4,5,6] ```