2014-11-22 4 views
3

Я изучаю пролог. Мне интересно, как я могу представить следующий факт в прологе?
«Есть 300 миль между некоторымиCityA и someCityB». Помогите пожалуйста. Я искал его достаточно, но не смог найти решение моей конкретной проблемы.Представьте следующий факт в прологе

+0

Пожалуйста, не редактируйте в ответе на свой вопрос. Если вы хотите ответить на свой вопрос, перейдите в окно ответа ниже и напишите свой собственный ответ. Вы даже можете принять свой собственный ответ в качестве ответа, который помог вам больше всего. Эта структура сохраняет StackOverflow в чистоте. – Sumurai8

+0

'расстояние_between_cities (немногоCityA, немногоCityB, 300) .'? –

+0

да, я сделал это так же, задолго до этого. В любом случае, спасибо. – Qubad

ответ

2

Пролог позволяет представлять знания по фактам и правилам. факт и правило, имеют следующий формат:

A :- A1, .., An 

Где A, A1, .., An так называемые литералы. Если n = 0, то его факт, если n> 0, то это правило.

Буквальное имеет folllowing синтаксис, имя является именем предиката и условия являются аргументами предиката:

literal = atom [ "(" term { "," term } ]. 

respresentation знаний является само по себе искусство. Может быть множество требований к представлению, которое может заставить его иметь определенную форму.

Но вы можете думать как литерал как лист прецедента, который используется , чтобы держать стол. Столбцы, которые описывают имена столбцов являются не вошли в Пролог как факты и правила, но вы можете использовать Пролог comments ввести имена столбцов, например:

% distance_between_cities(Atom, Atom, Float) 

Или более конкретно:

% distance_between_cities(CityId, CityId, DistanceMiles) 

После первого комментария, просто введите факты:

distance_between_cities('New York, US','Los Angeles, US',2443.85). 
    distance_between_cities('New York, US','San Francisco, US',2563.89). 
    distance_between_cities('Los Angeles, US','San Francisco, US',347.18). 

Различные имена предикатов можно назвать differe nt excel листы так сказать. В некоторых пролог-системах даже есть интерфейсы CSV.

Bye

Смежные вопросы