我想寫一個謂語containsOnly(X,Y)
,返回true,如果字符串X
包含字符串Y.只有字符如何檢查一個字符串只包含Prolog中的某些字符?
我寫這樣說:
containsOnly([],_).
containsOnly([H|T],AcceptableCharacters) :-
member(H, AcceptableCharacters),
containsOnly(T,AcceptableCharacters).
但低於返回查詢假的。我如何修改謂詞以使它們返回true?
containsOnly('A', 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöüАБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзиклмнопрстуфхцчшщъыьэюя-').
containsOnly('a', 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜabcdefghijklmnopqrstuvwxyzäöüАБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзиклмнопрстуфхцчшщъыьэюя-').
請先閱讀[相關問題](http://stackoverflow.com/q/8264699/1613573)關於Prolog中''''和'''區別以及重要的標誌'double_quotes'。 – mat