#list #prolog #member #membership
#Список #пролог #Участник #членство
Вопрос:
Вопрос в том-
Напишите программу PROLOG, управляемую меню, для реализации различных операций над списком, таких как- членство
Мой ответ был —
main :-
nl,
writeln("> Enter a selection followed by a period."), nl,
writeln("> 1. Run a query"), nl,
writeln("> 2. Exit"), nl, nl,
read(Choice),
run_opt(Choice),main.
run_opt(1) :-
writeln("> Enter list"), nl,
read(L),
member(X,[L]).
run_opt(2) :- writeln("Goodbye"), nl.
run_opt(_) :- writeln("Invalid option"), nl.
member(X,[X|_]).
member(X,[_|TAIL]):-
member(X,TAIL).
У этой вышеупомянутой программы есть проблема, и я не могу вставить элемент с помощью вставки, управляемой меню, как я делаю это ниже, без прямого управления меню—
member(X,[X|_]).
member(X,[_|TAIL]):-
member(X,TAIL).
и приведенная выше программа корректно выполняется, когда я ставлю—
member(X,[1,2,3]).
и он отображает участников как-
X = 1
X = 2
X = 3
Итак, мне нужно сделать это с помощью menu driven, но я не могу передать элемент списка в prolog.
Заранее благодарю.
Комментарии:
1. Каким должен быть ответ , если вы вводите
[1, 2, 3]
данные ? Должна ли программа печататьtrue
, например, один элемент списка1
, или она должна печатать каждый элемент в отдельной строке, или она должна печатать все элементы в списке, например[1, 2, 3]
?2.
member(X,[L])
должно бытьmember(X,L)
3. @IsabelleNewbie ans должен напечатать все элементы списка, как я показал выше, но он показывает недопустимую опцию и ошибку одноэлементной переменной.
4. @Kintalken я также пробовал member(X, L), он показывает ошибку одноэлементной переменной [X] и параметр invalid, когда я помещаю значения элементов списка.