:- dynamic husket/2. go:- write('Prototype på system til diagnose af sygdomme'), nl, nl, try. try:- løsning(X), !, write('Patienten kan muligvis være ramt af: '), write(X), nl, glem. try:- write('Sådan en sygdom har jeg aldrig hørt om'), nl, glem. glem:- retract(husket(_, _)), glem. løsning('Influenza'):- positiv('Patienten har hovedpine'), positiv('Patienten har feber'). løsning('Lungebetændelse'):- negativ('Patienten har hovedpine'), positiv('Patienten har feber'), positiv('Patienten har høj feber'). løsning('Tømmermænd'):- positiv('Patienten har hovedpine'), negativ('Patienten har feber'), positiv('Patienten har kvalme'). positiv(X):- husket(X, ja), !. positiv(X):- husket(X, nej), !, fail. positiv(X):- write(X), write(': '), read(Svar), nl, ( (Svar == ja; Svar == j) -> assertz(husket(X, ja)) ; assertz(husket(X, nej)), fail). negativ(X):- husket(X, nej), !. negativ(X):- husket(X, ja), !, fail. negativ(X):- write(X), write(': '), read(Svar), nl, ( (Svar == nej; Svar == n) -> assertz(husket(X, nej)) ; assertz(husket(X, ja)), fail).