我有一个类似的断言查询:
:- 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)
或b(1)
,分别显示aa
或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
应该只有一个命令吗? (我不确定如何解释这个。)