このディレクトリの索引

# 出典 :: # [1] 授業単元:プログラミング # [2] HEADコマンドを実装せよ #   構文head[-Ln][filename] # 実現する機能:ファイルの先頭の複数行を画面に出力する。 #   引数:Ln:出力する行数nを指定する(デフォルトは10行) # # file = myhead -l%1 %2 # swipl %1 %2 -f head.pro -g head head :- current_prolog_flag(argv,_パラメータリスト), ファイル名と表示行数の取得(_パラメータリスト,_ファイル名,_表示行数), 行ならび入力(_ファイル名,_行ならび), length(_表示行ならび,_表示行数), forall((append(_表示行ならび,L2,_行ならび),member(_行,_表示行ならび)),writef('%w\n',[_行])). ファイル名と表示行数の取得([_ファイル名,A|_],_ファイル名,_行数) :- read_term_from_atom(A,_行数_1,[]), _行数 is _行数_1 * (-1),!. ファイル名と表示行数の取得([_ファイル名,A|_],_ファイル名,_行数) :- sub_atom(A,0,2,J,_), sub_atom(A,2,J,0,B), read_term_from_atom(B,_行数,[]). 行ならび入力(_ファイル,_行ならび) :- open(_ファイル,read,_入力), findall(_行,(repeat,(at_end_of_stream(_入力),close(_入力),!,fail;行入力(_入力,_行))),_行ならび). 行入力(_入力,_行) :- read_line_to_codes(_入力,_コードならび), atom_codes(_行,_コードならび). :- head,halt.