テキストを整理するプログラム

「テキストを整理するプログラム」の編集履歴(バックアップ)一覧はこちら

テキストを整理するプログラム」(2014/05/07 (水) 17:10:53) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

基本的なプログラム作法を学んだら、次は述語を使って実用的なプログラムを作ってみましょう。 今回はこのようなテキストがあったとします。 //in.txt こんにちは やあ こんにちは こんにちは さよなら 今晩は はじめまして 今晩は 今晩は さようなら やあ さようなら さようなら はじめまして よく見ると同じ文章が複数含まれています。 重複している文章が不要なので、ニ度入力された文章は無視して 別のテキストファイルに保存するようなプログラムを書いてみましょう。 test:-kanji_mode(_,on), tella('out.txt'), see('in.txt',S), repeat,gets(S,X,N),f(X),N=:=1, seen(S),told. gets(S,L,N):-get0(S,X),gets(S,X,L,N). gets(S,4,[],1):-!. %for Linux gets(S,26,[],1):-!. %for windows gets(S,10,[],0):-!. %LF gets(S,13,[],0):-!. %CR gets(S,31,[],0):-!. %for az-prolog gets(S,X,[X|L],N):-gets(S,L,N). f([]). f(A):-a(A),!. f(A):-assert(a(A)),!,name(B,A),write(B),nl. get0,see,seen,assert,nameは既に学習しました。 個々ではassertでa述語を作成して, 次にa(A)のAが入力データf(A)のAと同じであればwriteしないで f述語を終わらせることによって2度同じ文を入力しないようにしています。 atomは65535文字まで対応可能です。(Ver7.09以前では255文字までしか対応していません。)
基本的なプログラム作法を学んだら、次は述語を使って実用的なプログラムを作ってみましょう。 今回はこのようなテキストがあったとします。 //in.txt こんにちは やあ こんにちは こんにちは さよなら 今晩は はじめまして 今晩は 今晩は さようなら やあ さようなら さようなら はじめまして よく見ると同じ文章が複数含まれています。 重複している文章が不要なので、ニ度入力された文章は無視して 別のテキストファイルに保存するプログラムを書いてみましょう。 test:-kanji_mode(_,on), tella('out.txt'), see('in.txt',S), repeat,gets(S,X,N),f(X),N=:=1, seen(S),told. gets(S,L,N):-get0(S,X),gets(S,X,L,N). gets(S,4,[],1):-!. %for Linux gets(S,26,[],1):-!. %for windows gets(S,10,[],0):-!. %LF gets(S,13,[],0):-!. %CR gets(S,31,[],0):-!. %for az-prolog gets(S,X,[X|L],N):-gets(S,L,N). f([]). f(A):-a(A),!. f(A):-assert(a(A)),!,name(B,A),write(B),nl. get0,see,seen,assert,nameは既に学習しました。 個々ではassertでa述語を作成して, 次にa(A)のAが入力データf(A)のAと同じであればwriteしないで f述語を終わらせることによって2度同じ文を入力しないようにしています。 atomは65535文字まで対応可能です。(Ver7.09以前では255文字までしか対応していません。)

表示オプション

横に並べて表示:
変化行の前後のみ表示: