文字列処理に最適な言語
■ このスレッドは過去ログ倉庫に格納されています
0105デフォルトの名無しさん
2008/10/02(木) 11:43:08decompcons(Atom,Chars),
replaceall_1(_置換候補述語名,Chars,Y),
concat_atom(Y,X).
replaceall_1(_,[],[]) :- !.
replaceall_1(_置換候補述語名,Chars,X) :-
functor(Q,_置換候補述語名,3),
arg(1,Q,Chars),
arg(2,Q,CharsR),
arg(3,Q,CharsS),
call(Q),!,
replaceall_1(_置換候補述語名,CharsR,Y),
append(CharsS,Y,X).
replaceall_1(_置換候補述語名,[A|R1],[A|R2]) :-
replaceall_1(_置換候補述語名,R1,R2).
遅いけれどこれは便利。以下のように定義(consult)する。mysという名前は任意。
mys([な,ら,び|R],R,[リ,ス,ト]).
mys([l,i,s,t|R],R,[小,文,字,で,l,i,s,t]).
?- replaceall(mys,ならびとかlistと書いてある,X).
X = 'リストとか小文字でlistと書いてある'
■ このスレッドは過去ログ倉庫に格納されています