UTNianos

Versión completa: [Consulta] [Paradigmas] Ejercicio Final 26-05-2011
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola, como va?
tengo una consulta sobre el siguiente ejercicio de ese final:

Punto 2
En un programa Prolog se escribió el siguiente predicado:

esMenor(X,Y):-X<Y.

a. ¿Qué hace?
b. Este predicado permite que dado un número como segundo argumento, se obtengan todos los números naturales menores que él. (V o F Justificar)
c. Si la afirmación anterior es verdadera, mostrar un ejemplo de consulta con 10 posibles respuestas. En caso contrario, modificar el predicado para que la afirmarción del punto anterior sea correcta.



b) Es falso. La comparación es uno de los límites a la inversibilidad. Para que pueda realizarse, ambas variables deben estar ligadas. En el caso propuesto, sólo estaría ligada la "Y".

c) ??
Acá es donde surge mi duda...como creo un predicado generador para un número natural que me permita hacer inversible el predicado, ya que son infinitos los numeros naturales.
No se me ocurre como hacer para resolverlo..

Gracias de antemano!
(28-01-2014 18:56)agustinp.metz escribió: [ -> ][...]

Hola, el punto 3 alguien lo resolvio?
(28-01-2014 18:56)agustinp.metz escribió: [ -> ]c) ??
Acá es donde surge mi duda...como creo un predicado generador para un número natural que me permita hacer inversible el predicado, ya que son infinitos los numeros naturales.
No se me ocurre como hacer para resolverlo..

Gracias de antemano!

Creo que lo que hay que hacer es:
1) crear hechos para que las variables liguen con esos numeros.
2) agregarle predicado generador para hacerlo inversible.

Por ej:
numero(1).
numero(2).
numero(3).
numero(4).

esMenor(X,Y):- numero(X),numero(Y), X < Y.

No estoy seguro pero creo que es algo asi.
Fijate si esto te funca, no tengo el prolog para probarlo.

numerosNaturales = [1..].

esMenor(X,Y):- member(X,numerosNaturales),
member(Y,numerosNaturales),
X<Y.
URLs de referencia