[Закрыть]
 
popoff.donetsk.ua
Если долгое время ходить в маске, рано или поздно можно так сжиться с ней, что потеряешь своё истинное лицо.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Функциональное и логическое программирование - перевод решения с v prologa на gnu

перевод решения с v prologa на gnu

форумы popoff.donetsk.ua
Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Автор Сообщение
Гость whisperinmurk dash forum at yahoo dot com url://forum.message:2049
перевод решения с v prologa на gnu
whisperinmurk dash forum at yahoo dot com

надо реализовать десвия, вот пример на вижул прологе, его надо перевести на gnu prolog

код на вижул прологе

DOMAINS
Name= coffee; coffeegrinder;ground(Name);water;coffeemachine;dresser; shop;home;
 man;range; have(Name); nohave(Name);near(Name); far(Name);in(Name,Name); noin(Name,Name);
 on(Name,Name); noon(Name,Name)
State=state(Name, Name, Name, Name);state2(Name,Name)
Action=put; take; buy; go

PREDICATES
act(State,Action,State)
st(State)
canweld(State)

CLAUSES

act(state(on(man,home), nohave(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range)),
go,state(on(man,shop),nohave(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range))).

act(state(on(man,shop),nohave(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range)),
buy,state(on(man,home),have(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range))).

act(state(on(man,home),have(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range)),
go,state(near(dresser),have(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range))).

act(state(near(dresser),_,in(coffeegrinder,dresser),_), take,state(near(dresser),_,have(coffeegrinder),_)).

act(state(_,have(ground(coffee)),_,_),go,state(near(range),have(ground(coffee)),_,_)).

act(state2(noin(water,coffeemachine), noin(ground(coffee), coffeemachine)),put,
state2(in(water,coffeemachine), in(ground(coffee), coffeemachine))).

st(state(_,_,_,on(coffeemachine,range))):-st(state(near(range),_,_,_)),st(state2(in(water,coffeemachine),
in(ground(coffee), coffeemachine))).
st(state(_,have(ground(coffee)),_,_)):-st(state(_,_,have(coffeegrinder),_)).

canweld(state(_,_,_,on(coffeemachine,range))).
canweld(State1):-act(State1,_,State2),canweld(State2).
GOAL
/*canweld(state(on(man,home), nohave(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range))).*/
/*canweld(state(on(man,home), nohave(coffee), noin(coffeegrinder,dresser), noon(coffeemachine,range))).*/
canweld(state(_, nohave(coffee), noin(coffeegrinder,dresser), noon(coffeemachine,range))).

popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:2050

А в чём, собственно, вопрос?

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Гость whisperinmurk dash forum at yahoo dot com url://forum.message:2051
whisperinmurk dash forum at yahoo dot com

А в чём, собственно, вопрос?

popoffфорумы popoff.donetsk.ua




canweld(state(_,_,_,on(coffeemachine,range))).
canweld(State1):-act(State1,_,State2),canweld(State2).

- допустим вот это - для gnu prolog - ошибочно, он ругается и не понмает

State=state(Name, Name, Name, Name) - вот это тоже.

Вопрос в том как и что надо подправить, чтоб оно работало в gnu prologe/ вот и все

или может есть какой-то другой  способ реализовать дейсвия

в данном случае предикат содержит состояние до, название десвия, состояние после.

roman
roman
Июн, 2008
Сообщений: 4
roman url://forum.message:2514

попробуйте использовать swi-prolog, вроде как совместим с Visual Prolog...
swi-prolog работает на *NIX системах и портирован на ОС от Microsoft...
Работать с оболочкой просто, если, к примеру, есть программа в файле lab.pl
1. запускаем оболочку (команда swipl)
2. загружаем саму программу командой: consult(lab).
3. делаем запросы

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен
Вход
Поиск[?]:
Программное обеспечение любой сложности
koins.com.ua