![]() |
|
|
![]()
|
|
| Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Здравствуйте!
Поставлена следующая задача: «Определите отношение разбиениесписка( Список, Список1, Список2) так, чтобы оно распределяло элементы списка между двумя списками Список1 и Список2 и чтобы эти списки были примерно одинаковой длины. Например: разбиениесписка( [а, b, с, d, e], [a, с, е], [b, d]).» Написал следующий код:
Задаю команду в SWI-Prolog ?- explode([a,b,c,d,e],X,Y). — получаю бесконечный цикл. Что не так? Это сообщение отредактировал(а) Coderr - 17.11.2010, 12:27 --------------------
Кодинг - это стиль жизни! |
|||
|
||||
| Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 6 Всего: 49 |
Во-первых, у Вас явно какая-то путаница с определением и вызовом предиката add (какой из аргументов чем является?). Во-вторых, в Прологе нет переменных в нормальном смысле слова, поэтому конструкция вроде add(L1,X,L1) не поменяет значение L1 - она вызовется для известных L1 и X и будет пытаться доказывать, что такой предикат истинен.
Кроме этого, никакой add тут вообще не нужен. Можно сделать так:
|
|||
|
||||
| Coderr |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 27.1.2006 Где: Vesnet Репутация: нет Всего: 0 |
Спасибо большое за помощь! =)
--------------------
Кодинг - это стиль жизни! |
|||
|
||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |