Как вставить список участников с помощью программы prolog, управляемой меню?

#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, когда я помещаю значения элементов списка.