Первое использование SWI-Prolog - PullRequest
12 голосов
/ 07 марта 2011

Я новичок в Прологе.Я просто пытаюсь получить какую-то информацию от Пролога в Windows Vista.

Я скачал и установил Prolog 5.1;При установке я выбрал расширение .pro (не путать с файлами Perl).

Я создал файл с именем test.pro.Внутри этого файла я поместил следующее:

inside(tom).
?-inside(tom).

Я дважды щелкнул файл, и появился интерфейс командной строки.На этом интерфейсе (после набора общей версии Prolog / информации об авторском праве) единственный вывод:

1 ?-

ОК, для начала я не ожидал, что он задаст вопрос;Я ожидал, что он ответит на вопрос (что-то вроде «да»).

В любом случае, я попытался ответить на запрос следующим образом:

Inкомандную строку я вставил заново «внутрь (том)», поэтому вся строка выглядит так:

1 ?- inside(tom).

Я нажал Введите и получил сообщение об ошибке:

ERROR: toplevel: Undefined procedure: inside/1 (DWIM could not correct goal)

Ответы [ 3 ]

21 голосов
/ 07 марта 2011

Пролог не отвечает на вопросы, если вы не сказали это факты . (За исключением некоторых встроенных фактов, таких как member(1, [1,2,3]).)

Вы можете сказать, кто находится внутри, (комментарий следует за %):

1 ?- [user].                          % get facts and rules from user input
|: inside(mary).                      % Mary and John are explicitly inside
|: inside(john).
|: inside(X) :- location(X, house).   % rule: anyone in the house is inside
|: inside(X) :- location(X, office).  % (variables start with a capital letter)
|: 
|: location(tom, house).
|: location(bernard, house).
|: location(anne, office).
|:                                    % type Ctrl+D
% user://1 compiled 0.00 sec, 1,220 bytes
true.

2 ?- inside(tom).                     % Prolog deduces that Tom is inside
true .

Если вы хотите выучить пролог, Изучите пролог сейчас - хороший бесплатный учебник.

6 голосов
/ 07 марта 2011

Вы должны скомпилировать это сначала (также называется "консультация" в прологе).Если бы я знал, какая у вас версия пролога, я мог бы узнать точную ключевую запись для этой команды (Ctrl-L может работать).Кстати, добро пожаловать в замечательный мир пролога - мне это нравится :) Как только вы преодолеете это препятствие, все станет намного лучше.:)

0 голосов
/ 17 июня 2014

Быстро и грязно.Чего не хватало, так это «компилирования» файла, известного как consult, и синтаксис которого следующий: все символы в строке релевантны.

? - [имя файла].

тогда вы можете спроситьвопросы и другие вещи с какой базой данных. (исходный код в прологе)

http://www.swi -prolog.org / pldoc / man? section = quickstart

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...