Показать сообщение отдельно
  (#49 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,907
Сказал(а) спасибо: 2
Поблагодарили 297 раз(а) в 297 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 21.02.2012, 12:01

Цитата:
Сообщение от milyan Посмотреть сообщение
а можно ложить по одному элементу? если не сложно покажить как)
Можно как угодно:
Visual Prolog Код:
...
V1=readline(),
List = [V1],
V2=readline(),
List1 = [V2|List],
V3=readline(),
List2 = [V3|List1],
write(List2),
...
Можно и рекурсивно.
Цитата:
Сообщение от milyan Посмотреть сообщение
как очистить список и копировать один список в другой
Очистить список какой-либо специальной операцией нельзя. Только бэктрекинг освобождает переменные от их значений. Если Вам нужен пустой список, то введите в программу новую свободную переменную и унифицируйте её с пустым списком: G=[].
Понимаете, идеология Пролога не допускает разрушающего присваивания, к которому привыкают программисты императивных языков и им постоянно хочется переменные разрушать, присваивая им новые значения, а потом ещё и ещё раз и так до бесконечности. В прологе так: если Вам нужна новая сущность, то вводите в текст программы новую переменную.
Копировать один список в другой нефиг делать:
Visual Prolog Код:
D=[1,2,3],
W=D,
Свободная переменная W сейчас ссылается на тот же адрес в памяти, что и переменная D.

p.s. Вообще-то эта тема ориентирована на людей, знающих Пролог, но не владеющих фичами именно Visual Prolog-а. Но я буду стараться отвечать на все вопросы.
Ответить с цитированием
Пользователь сказал cпасибо:
milyan (21.02.2012)
Ads