わかりました私の答えは、リストのアイデアから離れ、代わりに述語を使用することになりました:
maleWords( [he, him, his]).
femaleWords([she, her, hers]).
familyWords([mother, mom, father, dad, sister, brother]).
goodEmotes( [happy, ecstatic, great, good, yay, love, like, better, best]).
badEmotes( [sad, bad, horrible, depressed, sucks, death, die, died, dead]).
chat:-writeln('What\'s on your mind?'), bot.
bot:-readln(A),
maplist(downcase_atom, A, X),
X \= [quit] ->
maplist(checkAtom,X,Temp),
sort(Temp,List),
wrt(List),
bot;
writeln('Fine. Ruin your life then.').
checkAtom(A,X):-
maleWords(Y), member(A,Y)-> X = maleW;
femaleWords(Y), member(A,Y)-> X = femaleW;
familyWords(Y), member(A,Y)-> X = family;
goodEmotes(Y), member(A,Y)-> X = goodEm;
badEmotes(Y), member(A,Y)-> X = badEm;
X = nothing.
wrt(List):-
sublist([badEm,family,femaleW],List) -> writeln('Do you feel like she\'s causing your problems?');
sublist([badEm,family,maleW],List) -> writeln('Do you feel like he\'s causing your problems?');
sublist([family,femaleW,goodEm],List) -> writeln('Do you feel like she\'s helping you?');
sublist([family,goodEm,maleW],List) -> writeln('Do you feel like he\'s helping you?');
writeln('Hmm.*writes on clipboard*').
%%%%%%% Got this predicate from another SO question... %%%%%%%%%%
sublist( [], _ ).
sublist( [X|XS], [X|XSS] ) :- sublist( XS, XSS ).
sublist( [X|XS], [_|XSS] ) :- sublist( [X|XS], XSS ).