在prolog中链接独占语句的好方法是什么?
我们被要求在一次考试中编写一个基于菜单的计算器,一旦完成了所需的计算,我们就可以将控制权返回到菜单 我编写了以下代码作为我的解决方案,虽然教授认为它是正确的,但我仍然认为在表(a,N)的第一个子句返回false之后,必须有更好的方法将控件返回到菜单。 请注意,我已经编辑了很多与我的问题无关的原始代码在prolog中链接独占语句的好方法是什么?,prolog,Prolog,我们被要求在一次考试中编写一个基于菜单的计算器,一旦完成了所需的计算,我们就可以将控制权返回到菜单 我编写了以下代码作为我的解决方案,虽然教授认为它是正确的,但我仍然认为在表(a,N)的第一个子句返回false之后,必须有更好的方法将控件返回到菜单。 请注意,我已经编辑了很多与我的问题无关的原始代码 menu :- write('Enter a choice: '), read(C), choice(C). choice(1) :-
menu :-
write('Enter a choice: '),
read(C),
choice(C).
choice(1) :-
table(5).
table(N) :-
A is 1,
start(A,N).
table(A,N) :-
K is A*N,
write(K),
nl,
A1 is A+1,
A1=<10,
table(A1, N)
;
menu.
菜单:-
写入('输入选项:'),
读(C),
选择(C)。
选择(1):-
表(5)。
表(N):-
A是1,
开始(A,N)。
表(A,N):-
K是A*N,
写(K),
荷兰,
A1是A+1,
A1=您可以使用repeat/0
永远循环
menu :-
repeat, % add this line
write('Enter a choice: '),
read(C),
choice(C).
choice(1) :-
table(5).
table(N) :-
A is 1,
start(A,N).
table(A,N) :-
K is A*N,
write(K),
nl,
A1 is A+1,
A1=<10,
table(A1, N).
% ; % delete this line
% menu. % delete this line
菜单:-
重复,添加此行
写入('输入选项:'),
读(C),
选择(C)。
选择(1):-
表(5)。
表(N):-
A是1,
开始(A,N)。
表(A,N):-
K是A*N,
写(K),
荷兰,
A1是A+1,
A1=