このディレクトリの索引
#  出典: http://toro.2ch.net/test/read.cgi/tech/1392388003/167
#  文字列(string型)の先頭から数字として有効な文字数を返す関数ってどうやって作れば良いですか? 
#  例 
#  "126AB"→3 
#  "-(1+2)"→0 
#  "-9.25ABC"→5 

文字列の先頭から数字として有効な文字数を得る(_文字列,_先頭から数字として有効な文字数) :-
        atom_length(_文字列,_長さ),
        文字列の先頭から数字として有効な文字数を得る(_文字列,_長さ,_先頭から数字として有効な文字数).

文字列の先頭から数字として有効な文字数を得る(_文字列,_先頭から数字として有効な文字数,_先頭から数字として有効な文字数) :-
        文字列の先頭から数字として有効な文字数(_文字列,_先頭から数字として有効な文字数),!.
文字列の先頭から数字として有効な文字数を得る(_文字列,_文字数,_先頭から数字として有効な文字数) :-
        _文字数 > 0,
        _文字数_1 is _文字数 - 1,
        文字列の先頭から数字として有効な文字数を得る(_文字列,_文字数_1,_先頭から数字として有効な文字数).

文字列の先頭から数字として有効な文字数(_文字列,_先頭から数字として有効な文字数) :-
        _先頭から数字として有効な文字数 > 0,
        sub_atom(_文字列,0,_先頭から数字として有効な文字数,_,_副文字列),
        catch(read_term_from_atom(_副文字列,_項,[]),_,fail),
        number(_項),!.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

文字列の先頭から数字として有効な文字列を切り出す(_文字列,_先頭から数字として有効な文字列) :-
sub_atom(_文字列,0,Len,R,_先頭から数字として有効な文字列),
(catch(read_term_from_atom(_先頭から数字として有効な文字列,_項,[]),_,fail),number(_項)),
succ(Len,Len2),
\+((sub_atom(_文字列(0,Len2,_,_副文字列2),catch(read_term_from_atom(_副文字列2,_項,[]),_,fail)),!.