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
。
我正在编写一个定义 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
。