私はA
を定義しているモジュールterm_expansion/2
を書いています。副作用として、モジュールB
によってインポートされると、モジュールB
で定義された用語は、モジュールA
で説明されているように展開されます。しかし、ユーザーがB
を読み込んだ後で、対話セッションで?- [B].
を使用した後に、シェルから来た用語を拡張することはできませんでした。 シェルから来たクエリ/ディレクティブを操作して代わりに呼び出すにはどうすればよいですか?Prolog:シェルからの入力で用語拡張を実行するには?
例:
ユーザーの種類は
?- my_append("AB", "CD", L).
私は(それに限定されない)を展開した後に呼ばれるこのような何かにmy_append
-termを展開したい場合:
?- extra_args(A0, A1), my_append_with_extra_args(A0, A1, "AB", "CD", L).
明確にする:用語拡張/操作自体は問題ではありません - 私が知る必要があるのは、使用できるフック/ term_expansion/2
のように再定義することです。
REPLからモジュールAをインポートする: '? - [a]。 – CapelliC
@CapelliCセッションを開始する前に必ず「A」をインポートすることを覚える必要はありません。 – user3389669