このディレクトリの索引

# # 実数を入力する場合の一般型 # 実数を得る(_入力,_催促文ならび,_実数を含む条件,_実数ならび) :- list(_催促文ならび), findall(_実数,( member(_催促文,_催促文ならび), 実数を得る(_入力,_催促文,_実数を含む条件,_実数)),_実数ならび),!. 実数を得る(_入力,_催促文,_実数を含む条件,_実数) :- 催促文の出力(_催促文), 行入力(_入力,_行), '診断: 実数を得る'(_行,_実数を含む条件,_実数),!. 実数を得る(_入力,_催促文,_実数を含む条件,_実数) :- 実数を得る(_入力,_催促文,_実数を含む条件,_実数). 催促文の出力('') :- !. 催促文の出力(_催促文) :- writef('%wを入力してください : ',[_催促文]). '診断: 実数を得る'('',_実数を含む条件,_実数) :- !,fail. '診断: 実数を得る'(end_of_file,_実数を含む条件,end_of_file) :- !. '診断: 実数を得る'(_行,_実数を含む条件,_実数) :- atom_number(_行,_実数), float(_実数), '診断: 実数を含む条件'(_実数,_実数を含む条件),!. '診断: 実数を得る'(_行,_実数を含む条件,_実数) :- \+((atom_number(_行,_実数),float(_実数))), writef('入力された %w からは実数が得られません。再入力をお願いします。\n',[_行]), fail. '診断: 実数を含む条件'(_実数,_実数を含む条件) :- call(_実数を含む条件),!. '診断: 実数を含む条件'(_実数,_実数を含む条件) :- writef('入力された %w は %w が偽となります。\n',[_実数,_実数を含む条件]),!, fail. 実数を得る(_催促文,_実数を含む条件,_実数) :- 実数を得る(current_input,_催促文,_実数を含む条件,_実数). 実数を得る(_催促文,_実数) :- 実数を得る(current_input,_催促文,true,_実数). 実数を得る(_実数) :- 実数を得る(current_input,'',true,_実数). n個の実数を得る(_n,_催促文,_実数ならび) :- length(_実数ならび,_n), findall(_実数,( 部分ならび(_実数ならび,_,_,_何番目,_,_,_,L3), writef('[%w/%w]番目の',[_何番目,_n]), 実数を得る(_催促文,_実数)),_実数ならび). 一行読み込む(_行) :- 行入力(_行). 行入力(_行) :- read_line_to_codes(current_input,_コードならび), atom_codes(_行,_コードならび). 行入力(_入力,_行) :- read_line_to_codes(_入力,_コードならび), atom_codes(_行,_コードならび). get_line(_入力,X) :- get_char(_入力,C), get_line_1(_入力,C,Chars), atom_chars(X,Chars). get_line_1(_入力,'\n',[]) :- !. get_line_1(_入力,end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(_入力,C,[C|R]) :- get_char(_入力,C2), get_line_1(_入力,C2,R). get_line(X) :- get_char(C), get_line_1(C,Chars), atom_chars(X,Chars). get_line_1('\n',[]) :- !. get_line_1(end_of_file,[e,n,d,'_',o,f,'_',f,i,l,e]) :- !. get_line_1(C,[C|R]) :- get_char(C2), get_line_1(C2,R). 部分ならび(L,Len1,L1,Nth,Len2,L2,Len3,L3) :- append([L1,L2,L3],L), 'L1,L2,L3の長さ'(L1,L2,L3,Len1,Len2,Len3), Nth is Len1 + 1. 部分ならび(L,Len1,L1,Len2,L2,Len3,L3) :- append([L1,L2,L3],L), 'L1,L2,L3の長さ'(L1,L2,L3,Len1,Len2,Len3). 'L1,L2,L3の長さ'(L1,L2,L3,Len1,Len2,Len3) :- length(L1,Len1), length(L2,Len2), length(L3,Len3). list([_|_]) :- !. list([].