Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 如何使用菜单驱动的prolog程序插入成员列表?_List_Prolog_Member_Membership - Fatal编程技术网

List 如何使用菜单驱动的prolog程序插入成员列表?

List 如何使用菜单驱动的prolog程序插入成员列表?,list,prolog,member,membership,List,Prolog,Member,Membership,问题是- 编写一个菜单驱动的PROLOG程序,以实现列表上的各种操作,如-membership 我的回答是- main :- nl, writeln("> Enter a selection followed by a period."), nl, writeln("> 1. Run a query"), nl, writeln("> 2. Exit"), nl, nl,

问题是-

编写一个菜单驱动的PROLOG程序,以实现列表上的各种操作,如-membership

我的回答是-

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).
上面的程序有问题,我不能用菜单驱动插入来插入成员,就像我在下面不用菜单驱动直接插入来插入一样--

当我把--

它将成员显示为-

X = 1
X = 2
X = 3
所以,我需要用菜单驱动来做这件事,但是我不能在prolog中传递列表成员。
提前感谢。

如果您输入
[1,2,3]
,答案应该是什么?程序应该打印
true
,还是像
1
那样打印列表中的单个元素,还是应该在单独的行上打印每个元素,还是应该打印列表中的所有元素,像
[1,2,3]
成员(X,[L])
应该是
成员(X,L)
@IsabelleNewbie ans应该像我上面显示的那样打印所有列表成员,但它显示无效选项和单例变量错误。@Kintalken我也尝试了成员(X,L)当我输入列表成员值时,它显示单例变量[X]错误和无效选项。如果输入
[1,2,3]
,答案应该是什么?程序应该打印
true
,还是像
1
那样打印列表中的单个元素,还是应该在单独的行上打印每个元素,还是应该打印列表中的所有元素,像
[1,2,3]
成员(X,[L])
应该是
成员(X,L)
@IsabelleNewbie ans应该像我上面显示的那样打印所有列表成员,但它显示无效选项和单例变量错误。@Kintalken我也尝试了成员(X,L)。当我输入列表成员值时,它显示单例变量[X]错误和无效选项。
member(X,[1,2,3]).
X = 1
X = 2
X = 3