|
|
|
boobie |
|
||||||||
Бывалый Профиль Группа: Участник Сообщений: 162 Регистрация: 16.9.2011 Репутация: нет Всего: нет |
Всем привет!
Пытаюсь решить задачу. Напишите предикат p(+V, +X, -L) - истинный тогда и только тогда, когда список L получается из списка V после удаления всех вхождений X на всех уровнях, например, p([1, [2, 3, [1]], [3, 1]], 1, [[2, 3, []], [3]]) - истина. Написал алгоритм удаления из списка всех элементов, совпадающих с Х.
Видел реализацию короче, но она для меня менее понятна, поэтому есть add1 для сбора списка. Делаем запрос. Получаем:
Вложенный список он не обрабатывает, он считает его элементом.
Пытаюсь заставить его пробегать и по вложенным спискам:
Если это решу, то можно будет добавлять уже "p(+V, +X, -L)". Как это доделать? |
||||||||
|
|||||||||
boobie |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 162 Регистрация: 16.9.2011 Репутация: нет Всего: нет |
Сделал... Некрасиво, зато работает. Может, кому-нибудь пригодится.
Это сообщение отредактировал(а) boobie - 21.4.2015, 13:41 |
|||
|
||||
Berli |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 2.5.2015 Репутация: нет Всего: нет |
Всем привет.
Помогите, пож, определить предикат len_NM (L,N,M), который проверяет содержит ли конкретный список из списков L не более N элементов с длинной, более М. Спасибо |
|||
|
||||
Правила форума Prolog | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Prolog | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |