I have a program that takes out suffixes and prefixes, but now I want to generate a sub-string and I still do not understand the prolog language.
I only have this:
principio:-
write("Queremos saber cual es la cadena "),
read(Cad),
string_chars(Cad,Lista),
write(Lista),
length(Lista,Tam),
write("&"),nl,
prefijos(Lista,0,Tam),
reverse(Lista,Listainv),nl,
length(Lista,Nte),
espacios(Nte),
write("&"),nl,
sufijos(Listainv,0,Tam).
imprimir([]).
imprimir([Ca|Co]):-
write(Ca),
imprimir(Co).
espacios(0).
espacios(Ne):-
write(" "),
Nef is Ne-1,
espacios(Nef).
obtener(_,0,Ls,Tam):-
length(Ls,Tax),
Ce is Tam-Tax,
espacios(Ce),
imprimir(Ls),
nl.
obtener(Lista,Nsuf,Ls,Tam):-
Lista=[Ca|Cola],
Lsa=[Ca|Ls],
Nsufa is Nsuf-1,
obtener(Cola,Nsufa,Lsa,Tam).
sufijos(_,Nsuf,Tam):-
Nsuf>Tam.
sufijos(Lista,Nsuf,Tam):-
obtener(Lista,Nsuf,[],Tam),
Nsufa is Nsuf+1,
sufijos(Lista,Nsufa,Tam).
reducir(_,0):-
nl,!.
reducir(Vector,Nupre):-
Vector=[Cab|Cola],
write(Cab),
Nuprea is Nupre-1,
reducir(Cola,Nuprea).
prefijos(Vector,Nupre,Cont):-
Nupre=<Cont,
reducir(Vector,Nupre),
Nuprea is Nupre+1,
prefijos(Vector,Nuprea,Cont).
prefijos(_,_,Cont):-
tab(5),
write("El total de prefijos fue "),
write(Cont).