09/06/23 05:11:18
>>274 >>275
% Prolog (訂正) コメント数 ではなく コメント文字数 です。
t274(_文字数,_改行数,_コメント文字数) :-
get_chars('test.txt',Chars),
length(Chars,_文字数),
改行数を数える(Chars,_改行数),
コメント文字数を数える(Chars,_コメント文字数).
改行数を数える(Chars,_改行数) :-
findall(_,append(_,['\n'|_],Chars),L),
length(L,_改行数).
コメント文字数を数える(Chars,_コメント文字数) :-
append(_,['/','*'|L2],Chars),
append(_コメント文字候補,['*','/'|_],L2),
not(append(_,['/','*'|_],_コメント文字候補)),
改行を取り除く(_コメント文字候補,_改行を取り除いたコメント文字候補),
length(_改行を取り除いたコメント文字候補,_コメント文字数).
改行を取り除く([],[]).
改行を取り除く(['\n'|R1],R2) :-
改行を取り除く(R1,R2),!.
改行を取り除く([A|R1],[A|R2]) :-
not(A='\n'),
改行を取り除く(R1,R2).