09/07/17 22:55:55
>>502
% Prolog URLリンク(nojiriko.asia)
入力文字列長の比較 :-
write('文字列A ? '),
get_line(A),
write('文字列B ? '),
get_line(B),
名前付き文字列長さの診断(文字列A,A,文字列B,B,_診断),
write_formatted('%t\n',[_診断).
名前付き文字列長の診断(_名前1,_文字列1,_名前2,_文字列2,_診断) :-
atom_chars(_文字列1,L1),
atom_chars(_文字列2,L2),
length(L1,_長さ1),
length(L2,_長さ2),
_長さの差 is _長さ1 - _長さ2
名前付き文字列長の診断の二(_名前1,_名前2,_長さの差,_診断),!.
名前付き文字列長の診断の二(_,_,0,'二つの文字列は同じです。') :- !.
名前付き文字列長の診断の二(_名前1,_名前2,_長さの差,_診断) :-
_長さの差 > 0,
concat_atom([_名前1,の方が,_長さの差,文字長いです。],_診断),!.
名前付き文字列長の診断の二(_名前1,_名前2,_長さの差,_診断) :-
_長さの差 < 0,
_長さの差1 is abs(_長さの差),
concat_atom([_名前2,の方が,_長さの差1,文字長いです。],_診断).