Necesito hacer esta tarea con prolog (sabor SWI) y no puedo entender algunas cosas.Prolog, lista de construcciones con cláusulas condicionales
Por ejemplo, si quiero iterar a través de una lista y agregar sus elementos a otra, pero SÓLO si cumplen con ciertas condiciones, ¿cómo lo haré? Puedo agregarlos todos, o ninguno, pero si agrego una cláusula que comprueba esta condición, la recursividad completa resulta ser "falsa". Entiendo por qué es esto, pero no tengo idea de cómo solucionarlo. Básicamente lo que quiero es:
goal(Stuff) :- do_something(X),
only_do_this_if_something(Y),
always_do_this(Z).
Actualmente, si only_do_this_if_something(Y)
falla, también resultan always_do_this(Z)
duerma como a toda la meta se vuelve falsa ...
+1 por ser honesto sobre la necesidad de ayuda para la tarea asignada. – csl
posible duplicado de [Prolo bucles y declaraciones condicionales?] (Http://stackoverflow.com/questions/3964420/prolog-loops-and-conditional-statements) –
@GuyC: Aquí no hay nada específico para SWI. – false