相关疑难解决方法(0)

重新排列variable_names

如何在一个符合标准的方式写入avs_term_rearranged(AVs, T, AVsR)与给定的AVsT,使得AVsR是的置换AVs作为其变量发生在左到右的顺序与布置在相同的顺序中的元素T.

AVs是一个表单元素的列表,A = V其中A一个原子指定一个变量名称,'X'并且V是一个相应的变量.这些列表由read_term/2,3read-option variable_names/1(7.10.3)生成.另外,没有定义元素的精确顺序.

| ?- read_term(T,[variable_names(AVs)]).
A+B+A+_+C.

AVs = ['A'=A,'B'=B,'C'=C]
T = A+B+A+_+C
Run Code Online (Sandbox Code Playgroud)

T是一个包含所有变量AVs加上更多的变量的术语.

请注意,在标准符合程序中,不能依赖变量的术语顺序(7.2.1):

7.2.1变量

如果XY是不相同的变量,则X term_precedes Y应依赖于实现,除了在创建排序列表(7.1.6.5,8.10.3.1 j)期间,排序应保持不变.

注 - 如果XY都是匿名变量,则它们不是相同的术语(见6.1.2 a).

8.4.3.4为例:

sort([f(U),U,U,f(V),f(U),V],L).
   Succeeds, unifying L with [U,V,f(U),f(V)] or
   [V,U,f(V),f(U)].
   [The solution is implementation …
Run Code Online (Sandbox Code Playgroud)

prolog iso-prolog

47
推荐指数
4
解决办法
1305
查看次数

标签 统计

iso-prolog ×1

prolog ×1