0

我有一个断言查询,类似于:

:- dynamic a/1,b/1.

dump:- listing(a),listing(b).

main:-retractall(a(X)),assert(a(1):-write('aa')),
      retractall(b(X)),assert(b(1):-write('bb')).

我希望用户键入a(1)or b(1),程序分别显示aaor bb(到目前为止还不错),然后调用另一个过程,具体取决于用户键入的内容。

例如,如果他键入a(1),我希望调用一个过程pro_a来运行,如果他键入 ,则分别运行b(1)一个过程pro_b

这些程序将是:

  pro_a:- retractall(a(X)),retractall(b(X)),write('you chose a'),
          assert(a(1):-write('aa1')).

  pro_b:- retractall(a(X)),retractall(b(X)),write('you chose b'),
          assert(b(1):-write('bb1')).

等等。

我尝试的是这样的:

assert(a(1):-write('aa'),pro_a).

但这不起作用。assert应该只有一个命令吗?(我不知道如何解释这一点)。

4

0 回答 0