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

Prolog: How to perform term expansion on input from shell?

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

示例:

如果用户输入

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

我想将 my_append-term 扩展为这样的东西(但不限于此),然后在扩展后调用它:

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

明确一点:term-expansion/-manipulation 本身不是问题——我需要知道的是钩子,我可以 use/redefine 喜欢 term_expansion/2

我要找的谓词是expand_query/4