Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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. Результат программы






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.