在prolog中链接独占语句的好方法是什么?

在prolog中链接独占语句的好方法是什么?,prolog,Prolog,我们被要求在一次考试中编写一个基于菜单的计算器,一旦完成了所需的计算,我们就可以将控制权返回到菜单 我编写了以下代码作为我的解决方案,虽然教授认为它是正确的,但我仍然认为在表(a,N)的第一个子句返回false之后,必须有更好的方法将控件返回到菜单。 请注意,我已经编辑了很多与我的问题无关的原始代码 menu :- write('Enter a choice: '), read(C), choice(C). choice(1) :-

我们被要求在一次考试中编写一个基于菜单的计算器,一旦完成了所需的计算,我们就可以将控制权返回到菜单

我编写了以下代码作为我的解决方案,虽然教授认为它是正确的,但我仍然认为在表(a,N)的第一个子句返回false之后,必须有更好的方法将控件返回到菜单。 请注意,我已经编辑了很多与我的问题无关的原始代码


    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=