I want to write a predicate containsOnly(X,Y)
, which returns true, if string X
contains only characters from string Y.
I wrote it this way:
containsOnly([],_).
containsOnly([H|T],AcceptableCharacters) :-
member(H, AcceptableCharacters),
containsOnly(T,AcceptableCharacters).
But the queries below return false. How can I modify the predicate in order for them to return true?
containsOnly('A', 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöüАБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзиклмнопрстуфхцчшщъыьэюя-').
containsOnly('a', 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöüАБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзиклмнопрстуфхцчшщъыьэюя-').