ngm
Power Member
Boas,
O "programa" é muito simples, deverá receber um número e retornar uma lista a começar nesse número e acabar em 1.
Por exemplo: run(3,Out) deverá devolver [3,2,1].
Estou a usar a seguir código:
E obtenho o seguinte OUTPUT:
Se o programa constrói a lista bem, como mostram os prints, porque raio não a devolve bem?
Obrigado e abraço.
O "programa" é muito simples, deverá receber um número e retornar uma lista a começar nesse número e acabar em 1.
Por exemplo: run(3,Out) deverá devolver [3,2,1].
Estou a usar a seguir código:
Código:
run(StartAt,Output) :-
cicle(StartAt,[],Output).
cicle(0,T,T).
cicle(Counter,ListIn,ListOut) :-
nl,write('In = '),write(ListIn),nl,
insert(Counter,ListIn,ListOut),
write('Out = '),write(ListOut),nl,
CounterNew is Counter-1,
cicle(CounterNew,ListOut,_).
insert(X,[],[X]).
insert(X,[Y|L],[Y|L1]) :-
insert(X,L,L1).
E obtenho o seguinte OUTPUT:
Código:
>> run(3,OUTPUT).
In = []
Out = [3]
In = [3]
Out = [3,2]
In = [3,2]
Out = [3,2,1]
OUTPUT = [3] ?
Se o programa constrói a lista bem, como mostram os prints, porque raio não a devolve bem?
Obrigado e abraço.