2

dynamic/1およびルールを使用して、実行時にいくつかのルールを生成しようとしていassert/1ます。

変数を生成するのと同じように、そのルールで使用される変数を生成する方法はありgensymますか?

4

1 に答える 1

2

functor/3 または length/2 を使用します。どちらも、それぞれ arg/3 または nth1/3 を使用して、インデックスによって後でアクセスできる変数を作成できます。

例えば

?- functor(T, $, 5), arg(3, T, some_value).
T = $(_G1070, _G1071, some_value, _G1073, _G1074).

また

?- length(T, 5), nth1(3, T, other_value).
T = [_G1070, _G1073, other_value, _G1079, _G1082].
于 2013-06-16T21:14:24.477 に答える