![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
CLAUSES. 10. Теперь выполните программу со следующей целью, Пролог должен вывести следующий ответ (рис
append([], List, List). append([H|L1], List2, [H|L3]): - append(L1, List2, L3). 10. Теперь выполните программу со следующей целью, Пролог должен вывести следующий ответ (рис. 6): append([1, 2, 3], [5, 6], L). Рис. 6. Вывод списка
11. Задайте следующую цель (рис. 7): append([1, 2], [3], L), append(L, L, LL).
Рис. 7. Вывод списков Составные списки Пример объявления домена для списка, который может содержать целое число, символ, строку, или список любого из них: DOMAINS /* функторы l, i, c, и s */ llist = l(list); i(integer); c(char); s(string) list = llist* Список [2, 9, [" food", " goo" ], " new" ] /* запись списка не на языке Пролог*/ записывается как [i(2), i(9), l([s(" food"), s(" goo")]), s(" new")] /* запись списка на языке Пролог*/ 12. Рассмотрим пример, который показывает, как использовать это объявление домена в типичной программе манипуляции списка. DOMAINS llist = l(list); i(integer); c(char); s(string) list = llist*
PREDICATES append(list, list, list)
CLAUSES append([], L, L). append([X|L1], L2, [X|L3]): - append(L1, L2, L3).
GOAL append([s(likes), l([s(bill), s(mary)])], [s(bill), s(sue)], Ans), write(“FIRST LIST: ”, Ans, “\n\n”), append([l([s(“This”), s(“is”), s(“a”), s(“list”)]), s(bee)], [c(‘c’)], Ans2), write(“SECOND LIST: ”, Ans2, ‘\n’).
13. Пролог выдаст ответ (рис. 8):
Рис. 8. Результат программы
|