文字列が Prolog の別の文字列の部分文字列であるかどうかを確認する方法はありますか? 文字列を文字のリストに変換してから、最初のセットが2番目のサブセットであり、十分に制限されていないように見えるかどうかを確認してみました。これは私の現在のコードです:
isSubstring(X,Y):-
stringToLower(X,XLower),
stringToLower(Y,YLower),
isSubset(XLower,YLower).
isSubset([],_).
isSubset([H|T],Y):-
member(H,Y),
select(H,Y,Z),
isSubset(T,Z).
stringToLower([],[]).
stringToLower([Char1|Rest1],[Char2|Rest2]):-
char_type(Char2,to_lower(Char1)),
stringToLower(Rest1,Rest2).
これをテストすると
isSubstring("test","tesZting")。
yes を返しますが、no を返す必要があります。