Я пишу рекурсивную функцию в Прологе, чтобы проверить, соответствует ли курс (Crs) в семестре (SEM, список) обязательному курсу в Prior (список). Во втором блоке кода есть 2 примера курса. Но когда он запускается, он терпит неудачу для csse1001 (который не имеет предварительных условий), когда он должен возвращать true, поскольку ему не нужно ничего искать. Что мне не хватает?
checkSem(Prior,[]).
checkSem(Prior,SEM):-
[Crs|Tail] = SEM,
member(pre(Crs,List),Prior),
checkSem(Prior,Tail).
Курс:
partA(comp3506).
lvl3(comp3506).
s1(comp3506).
pre(comp3506,[csse2002]).
partA(csse1001).
lvl1(csse1001).
s1(csse1001).
pre(csse1001,[]).