行頭からタブ、空白以外の文字が現れるまでの文字数(_n,[],_n) :- !. 行頭からタブ、空白以外の文字が現れるまでの文字数(_n,[A|_],_n) :- \+(A='\t'),\+(A=' '),!. 行頭からタブ、空白以外の文字が現れるまでの文字数(N,['\t'|R],_n) :- tab(空白,M), N2 is N + M, 行頭からタブ、空白以外の文字が現れるまでの文字数(N2,R,_n),!. 行頭からタブ、空白以外の文字が現れるまでの文字数(N,[' '|R],_n) :- N2 is N + 1, 行頭からタブ、空白以外の文字が現れるまでの文字数(N2,R,_n),!.