numero(7). numero(3). numero(4). numero(12). numero(1). numero(9). muestraTodos:- numero(N), writeln(N), fail. menor:- numero(Num1), menor(Num1, Menor), !, sformat(Salida, '~w ~w', ['El menor es: ', Menor]), % Se compone el mensaje en la variable 'Salida' writeln(Salida). menor(N, Min):- numero(X), N > X, writeln(X), !, menor(X, Min). menor(N, N):-!. mayor:- numero(Num1), mayor(Num1, Mayor), !, sformat(Salida, '~w ~w', ['El mayor es: ', Mayor]), writeln(Salida). mayor(N, Min):- numero(X), N < X, writeln(X), !, mayor(X, Min). mayor(N, N):-!. %__________________________ % reglas para la suma %-------------------------- limpiaTotal:- total(X), retract(total(X)), fail. limpiaTotal:-!. suma:- limpiaTotal, assert(total(0)), sumaTotal, total(SumaT), sformat(Salida, '~w ~w', ['La suma es: ', SumaT]), writeln(Salida). sumaTotal:- numero(X), total(Suma), SumaT is Suma + X, retract(total(Suma)), assert(total(SumaT)), fail. sumaTotal:-!. :- dynamic total.