10/01/30 06:28:44
>>525 (>>484) 書き直し。すみません。
% Prolog 出題が不完全でtab処理ができていない。普通は、
tab(空白,6).
'行頭からタブ、空白以外の文字が現れるまでがn回(n>=0)現れた場合深度=nとする'(_行,_n) :-
atom_chars(_行,Chars),
行頭からタブ、空白以外の文字が現れるまでの文字数(0,Chars,_n).
行頭からタブ、空白以外の文字が現れるまでの文字数(_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),!.