Forma aplanada en WAM
WAM: A Tutorial Reconstruction establece que una consulta, p (Z, h (Z, W), f (W)), debe aplanarse utilizando los siguientes principios:
Dicho esto, la forma de consulta aplanada es:
X3=h(X2, X5), X4=f(X5), X1=p(X2, X3, X4);
Estoy perdido con la definición de variable externa, considere lo siguiente:
p(Z, h(Y, a(K, C), b(W)), f(W)).
¿Es Y una variable externa? ¿Cómo debería ser la forma aplanada para esto? A mi entender, esta sería la construcción:
X1 = p(X2, X3, X4)
X2 = Z
X3 = h(X5, X6, X7)
X4 = f(X8)
X5 = Y
X6 = a(X7, X8)
X7 = K
X8 = C
X9 = b(X5)
Pero no estoy seguro, comenzando en X4 me confundí, ¿debería haber asignado primero los valores internos h?
Respuestas
Tiene el orden al revés: está construyendo términos antes de haber construido sus argumentos. El texto dice que construyas los argumentos antes de construir los términos externos. Por ejemplo, debe construir a(K, C)antes de poder construir h(..., a(K, C), ...), y debe construir eso antes de poder construir p(..., h(..., a(K, C), ...), ...). Aquí hay un orden legal:
X7 = K
X8 = C
X6 = a(X7, X8)
X5 = Y
X9 = b(X5)
X2 = Z
X3 = h(X5, X6, X7)
X4 = f(X8)
X1 = p(X2, X3, X4)