Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Упражнения. 3.3. Определите два предиката evenlength( List) и eddlength( List)




3.3. Определите два предиката
evenlength(List) и eddlength(List)

такие, что они становятся истинными, если их параметром является список, который, соответственно, содержит четное или нечетное количество элементов (имеет четную или нечетную длину). Например, список (а, Ь, с, d] соот­ветствует предикату evenlength, тогда как [ а, Ь, с ] — предикату

oddlength.

3.4. Определите отношение
reverse! List, ReversedList }

которое изменяет порядок следования элементов в списках на противополож­ный, например reverse ([ а, Ь, с, d], [ d, с, Ь, а]).

3.5. Определите предикат palindrome (List). Список является палиндромом,
если он читается одинаково в прямом и обратном направлении, например

[:i,а, а, а, т].

3.6. Определите отношение

Глава 3. Списки, операции, арифметические выражения 85


shift(Listl, List2)

такое, что List2 представляет собой Listl после "кругового сдвига" на один элемент влево. Например, вопрос

Т- shift< [1,2,3,4,5), L1),

shift С Ы, L2).

приводит к получению следующего ответа;

L1 = [2,3,4,5,1] L2 - (3,4,5,1,2]

3.7. Определите отношение
translate; Listl, List2)

для преобразования списка цифр от 0 до 9 в список соответствующих слов,

например, следующим образом:

translate; [3,5,1,3], (three, five,one,three])

Используйте следующие факты в качестве вспомогательного отношения:

means (0, zero).

means (1, one).

means (2, two).

3.8. Определите отношение
subset! Set, Subset)

где Set и Subset — два списка, представляющие два множества. Необходимо предусмотреть, чтобы это отношение можно было использовать не только для проверки принадлежности подмножества к множеству, но и для получения всех возможных подмножеств данного множества, например, следующим образом:

?- subset ([a,b,c], S].

S = [а,Ь, с ],-

S = [a,b];

S = [а,с];

S = [a];

S " [b,c] 1

S = [b];

3.9. Определите отношение

drvidelistf List, Listl, L^st2>

таким образом, чтобы элементы списка List распределялись между списками Listl и List2, причем Listl и List2 имели примерно одинаковую длину, например dividelist ([ а, Ь, с, d, е], [ а, с, е], [ Ь, d]).

3.10. Переопределите программу с обезьяной и бананом, приведенную в главе 2, как отношение canget( State, Actions)

чтобы она не просто отвечала "yes" или "по", но и вырабатывала последова­тельность действий обезьяны, представленную как список шагов, например: Actions - [ walk (door, window), push (window, middle), climb, grasp] 3-11- Определите отношение

flatten (List, FlatList)

где List может представлять собой список списков, a FlatList является спи­ском List, "линеаризованным" таким образом, чтобы элементы подсписков (или л од подсписков) List были реорганизованы в виде одного линейного спи­ска, например:?- flatten! (a,b, [c,d], [], t[[ej]],fj, L).

L = [ a, b, c, d, e, f]

86 Часть I. Язык Prolog






Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 489 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Даже страх смягчается привычкой. © Неизвестно
==> читать все изречения...

2484 - | 2178 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.