我有一个断言查询,类似于:
:- 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)
,程序分别显示aa
or 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
应该只有一个命令吗?(我不知道如何解释这一点)。