Контрольный список и база данных [Пролог] - PullRequest
0 голосов
/ 05 января 2012

Мне нужно разработать предикат в Прологе, способный сравнивать список с фактом.Другими словами, если названия продуктов, находящихся в списке, все тоже есть в базе данных (факт), то нужно сказать «да», иначе «нет».Предикат, очевидно, получает список названий продуктов.На данный момент у меня есть этот кусок кода.

domains
    state =  reduced ; normal
    element = string
    list = element*
database
    producte (string, integer, state)
predicates
    nondeterm check(list)
clauses 
   % ---> producte( description , price , state )
    producte("Enciam",2,normal). 
    producte("Llet",1,reduced). 
    producte("Formatge",5,normal). 
    %unique case
    check([Name]):-
        producte([Name],_,_).
    %general case
    check([D|T]):-
        producte(D,_,_),
        check(T).
Goal
    check(["Enciam","Llet","Formatge"]).

1 Ответ

0 голосов
/ 05 января 2012

Ваш базовый вариант для проверки ищет название продукта в виде списка, а не строки.

...