Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Как создать список инвертирования
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию Как создать список инвертирования - 25.11.2002, 14:14

Есть список. требуется создать другой содержащий значения первого в обратном порядке. В принципе при помощи рекурсивного вызова я получаю значения из стека в обратном порядке. Весь вопрос в том как эти значения запихнуть в новый список, и после этого уже новый список вывести на экран... код следующий:
Код:
domains
  sym=symbol*
predicates
  list(sym)
  ap(sym,sym,sym)

clauses
  list(["sotr1","sotr2","sotr3"]).

  ap([],L1,L1).
  ap([N1|L1],K1,[N1|L3]):-   ap(L1,K1,L3),write(N1),nl.

/* Вот  здесь  вот  из  стека имеем сначала sotr3 , потом sotr2 и sotr1 Вопрос  в том как эти значения запихнуть в новый список (переменную), а затем вывести его(её) на экран? */

goal
  clearwindow,
  list(B),
  write("Весь список:"),nl,
  write(B),nl,
  write("V obratnom poryadke:"),nl,
  ap(B,[],L3)
Ответить с цитированием
  (#2 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию 25.11.2002, 15:55

Если я правильно понимаю имеется ввиду это:
Код:
ap([],L,L).
ap([N1|L1], K1, L2) :- ap(L1, [N1|K1],L2).
Полный текст на Mercury (переписать на Prolog не сложно).
Код:
:-module ap.

:-interface.

:-import_module io.

:-pred main(io__state::di, io__state::uo) is det.

:-implementation.
:-import_module list.

:-pred ap(list(X),list(X),list(X)).
:-mode ap(in,in,out) is det.

ap([],L,L).
ap([N1|L1], K1, L2) :- ap(L1, [N1|K1],L2).

main -->
       {ap([1,2,3,4],[],L)},
       io__print(L).
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать двусвязный список и продублировать в нём все единицы. Tyurs92 Вопросы начинающих программистов 0 12.05.2011 19:24
Как создать динамичный список в С++ hazardhz Вопросы начинающих программистов 4 17.09.2009 10:47
Помогите пожалуста создать список из списков {{CaspeR}} Prolog 3 04.06.2007 23:32
Можно ли создать список названий бибилитек DLL Shturmovik Delphi 1 13.01.2007 22:20
Как создать двусвязный список zhenyarm Вопросы начинающих программистов 4 18.10.2005 14:54
Как создать список на множество в С++ iit3 Вопросы начинающих программистов 3 15.06.2005 13:04
Как создать линнейный однонаправленный список ggg Вопросы начинающих программистов 1 31.03.2005 16:45
Как создать список lenanel Prolog 3 20.10.2004 22:51
Как создать список User в ActiveDirectory Kain Delphi 0 31.08.2004 16:41
Как создать список всех списков длины fest Prolog 2 28.06.2004 08:19
Как создать в меню список последних открывавшихся файлов Anonymous Delphi 2 04.02.2004 13:53
Как создать третий список olyas Prolog 5 04.10.2002 18:27



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов