Prolog:如何对shell的输入执行术语扩展?

时间:2016-09-12 09:23:08

标签: prolog swi-prolog

我正在编写一个定义term_expansion/2的模块A。作为副作用,当它由模块B导入时,模块B中定义的术语将按照模块A中的描述进行扩展。但是,在用户在交互式会话中使用B加载?- [B].后,我无法扩展来自shell的条款。 如何操作来自shell的查询/指令并改为调用它们?

实施例

如果用户输入

?- my_append("AB", "CD", L).

我想将my_append - 术语扩展为类似的东西(但不限于此),然后在扩展后调用它:

?- extra_args(A0, A1), my_append_with_extra_args(A0, A1, "AB", "CD", L).

要明确:术语扩展/操作本身不是问题 - 我需要知道的是我可以使用/重新定义的钩子,如term_expansion/2

1 个答案:

答案 0 :(得分:2)

我正在寻找的谓词是expand_query/4