View Full Version : [PROLOG] Vari problemi
Sto studiando il Prolog, sono all'inizio e faccio fatica a capire alcune cose, forse perche' ho studiato 100 linguaggi prima di lui quando dovrebbe essere la base.
Ho questo codice, vorrei che dato il numero della domanda mi sputasse fuori la stringa relativa.
Non funzia, escono fuori dei _G287 cose del genere...
domanda([d(1,'a'),
d(2,'b'),
d(3,'c')]).
testoDomanda(N,D,domanda([d(N,D)|T])):- !.
testoDomanda(N,D,domanda([H|T])):- testoDomanda(N,D,domanda(T)).
ask(A):-
nl,
testoDomanda(2,X,domanda(L)),
write(X).
uhmmmmmm.....
mi sembra di averlo già visto questo codice....
non ho capito se è quello che intendevi... però prova questo:
testoDomanda(N,D,domanda([d(N,D)|T])):-!.
testoDomanda(N,D,domanda([H|T])):- testoDomanda(N,D,domanda(T)).
ask(A):-
testoDomanda(1,A,domanda([d(1,'a a'), d(2,b), d(3,c)])).
oppure prova questo:
domanda([d(1,a),
d(2,b),
d(3,c)]).
testoDomanda(N,D,domanda([d(N,D)|T])):-!.
testoDomanda(N,D,domanda([H|T])):- testoDomanda(N,D,domanda(T)).
ask(A):- domanda(L),
testoDomanda(1,A,domanda(L)).
dovrebbe andare...
ho aiutato Cimmo che emozione!!!!
:D
Mitico soalle, visto che ne sai cosi' tanto e che non ho un amico cosi' bravo come te in prolog mi faresti un altro favore?
Come faccio a sbattere la roba dentro a domandefatte? Io faccio l'append dei nuovi elementi, ma in domandefatte non rimane nulla...
domanda([d(0,'cimmo'),
d(1,'a'),
d(2,'b')]).
domandefatte([]).
testoDomanda(N,D,[d(N,D)|T]):-!.
testoDomanda(N,D,[H|T]):- testoDomanda(N,D,T).
append([],L,L).
append([T|C],L1,[T|L2]):-append(C,L1,L2).
casual(N,L,R,L1):-N is random(3), casuale(N,L,L1), R is N.
casuale(N,L,L1):-not(member(N,L)), write('N:'), write(N), append([N],L,L1).
casuale(N,L,L1):-member(N,L), write('b'), N1 is random(3), casuale(N1,L,L1).
ask(A):- domanda(L), domandefatte(L1), write(L1), casual(N,L1,R,L2), testoDomanda(R,A,L).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.