Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача на Prologe со списком, Добавление элемента к списку 
:(
    Опции темы
alex1234
Дата 18.10.2010, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 18.10.2010

Репутация: нет
Всего: нет



Добавление элемента к списку
Не знаю что с программой. По идеи всё правильно , а выводит ошибку 
(1003 Heap overflow. Not enough memory or an endless loop).

Текст программы:

DOMAINS
list=elem*
elem=integer

 PREDICATES
add(elem,list,list).

CLAUSES
add(X,L,[X|L]):-add(X,L,L1).

Goal:
         add(1,[1,2,4],L1).

В чём причина ошибки?
PM MAIL   Вверх
Фантом
Дата 18.10.2010, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 6
Всего: 49



Цитата(alex1234 @  18.10.2010,  20:23 Найти цитируемый пост)

Не знаю что с программой. По идеи всё правильно , а выводит ошибку 

Честно говоря, странно, что она вообще умудряется как-то работать.  smile 

Цитата(alex1234 @  18.10.2010,  20:23 Найти цитируемый пост)

В чём причина ошибки? 

Каждый раз при обращении к предикату add этот предикат возвращает список с добавленным к нему спереди элементом (что, по-видимому, и планировалось), а также вызывает сам себя еще раз (зачем - неизвестно). Получается бесконечная рекурсия, и в один прекрасный момент стек вызовов попросту переполняется.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.