このディレクトリの索引


奇数に一致させる(_文字列,_前文字列,_適合文字列,_後文字列) :-
        sub_atom(_文字列,Len1,_,Len2,_適合文字列),
        適合文字列は数字だけで構成される(_適合文字列),
        前文字列と後文字列を得る(_文字列,Len1,Len2,_前文字列,_後文字列),
        前文字列の最後の文字と後文字列の最初の文字は数字ではない(_前文字列,_後文字列),
        適合文字列を数値に変換すると奇数になる(_適合文字列).

前文字列と後文字列を得る(_文字列,Len1,Len2,_前文字列,_後文字列) :-
        sub_atom(_文字列,0,Len1,_,_前文字列),
        sub_atom(_文字列,_,Len2,0,_後文字列).

適合文字列は数字だけで構成される(_文字列) :-
        \+(_文字列=''),
        forall(sub_atom(_文字列,_,1,_,_数字),数字(_数字)).

前文字列の最後の文字と後文字列の最初の文字は数字ではない(_前文字列,_後文字列) :-
        \+((sub_atom(_前文字列,_,1,0,A),数字(A))),
        \+((sub_atom(_後文字列,0,1,_,B),数字(B))).

適合文字列を数値に変換すると奇数になる(_適合文字列) :-
        適合文字列を数値に変換すると(_適合文字列,_数値),
        奇数になる(_数値).

適合文字列を数値に変換すると(_適合文字列,_数値) :-
        atom_chars(_適合文字列,Chars),
        number_chars(_数値,Chars).

奇数になる(N) :-
        1 is N mod 2.

数字(A) :-
        A @>= '0',
        A @=< '9'.