Во-первых, обратите внимание, что ваш код, как есть, работает в SWI-Prolog:
?- [user].
|: deleteV([H|T],R):-member(H,[a,e,i,o,u]),deleteV(T,R),!.
|: deleteV([H|T],[H|R]):-deleteV(T,R),!.
|: deleteV([],[]).
% user://1 compiled 0.00 sec, 3 clauses
?- atom_chars(an_Atom_with_Mixed_case,Cs), deleteV(Cs,D).
Cs = [a, n, '_', 'A', t, o, m, '_', w|...],
D = [n, '_', 'A', t, m, '_', w, t, h|...].
Также обратите внимание, что то, что вы ищете уже доступно в библиотеке ( списки ):
?- atom_chars(an_Atom_with_Mixed_case,Cs), subtract(Cs,[a,e,i,o,u],D).
Cs = [a, n, '_', 'A', t, o, m, '_', w|...],
D = [n, '_', 'A', t, m, '_', w, t, h|...].
Теперь вы можете сравнить вашу реализацию с реализацией SWI-Prolog. Если вы используете IDE, попробуйте
?- edit(subtract).