Как ввести в программу все результаты этого правила как факты или как я могу обработать эти результаты как факты?

%Examples
%course_meetings(maths4,tutorial,t07,khaled_mohamed,'tutorial for t07')
%days([sat,sun...])
%tutorialrooms([c6301,b4108,c2201,c2301,c2202,c2203])
%slots([1,2,3,4,5])



day_tut(Day,Slot,Place,Course,Group,Instr,Descr):-
    days(X),member(Day,X),
    tutorialrooms(X1),member(Place,X1),
    course_meetings(Course,tutorial,Group,Instr,Descr),
    slots(X2),member(Slot,X2).

Я думал об использовании Assert, но я новичок в прологе, не уверен, как это работает, идея состоит в том, что в конечном итоге я хотел бы создать расписание для всех групп в соответствии с определенными правилами, например, у каждой группы должен быть выходной, а лекции должны предшествовать учебникам. .


person M.K    schedule 17.04.2012    source источник
comment
См. stackoverflow.com/a/24042110/772868, чтобы узнать, как это сделать.   -  person false    schedule 15.06.2014


Ответы (1)


Мои предложения исходят от SWI-Prolog.

Вы можете вставлять данные в динамическую базу данных, используя assert/1; вы можете поместить кортеж в таблицу Linda с помощью out/1 или использовать еще более продвинутые функции, такие как db_assert.

Однако вопрос не в том, КАК записать эти данные, а в том, ПОЧЕМУ вы хотите это сделать. В зависимости от того, как вы собираетесь решить проблему планирования, вам может понадобиться та или иная стратегия записи, а может и не быть никакой.

person Alexander Serebrenik    schedule 17.04.2012
comment
да, я знаю, что я все еще намерен приукрасить программу, чтобы распечатать определенные действительные факты в соответствии с некоторыми правилами. - person M.K; 17.04.2012
comment
В зависимости от количества фактов, которые вы собираетесь хранить, интересными вариантами могут быть assert (маленький) или db_assert (большой). - person Alexander Serebrenik; 18.04.2012