テキストファイルを読み込んでPrologのファイルに出力するにはどうしたらいいですか?

私はテキストファイルを持っていて、それを読み込んでスクリーンに印刷し、それらを新しい出力ファイルに書きたいと思っています。私がこれまでにしてきたことは、

main :-
    open('text.txt', read, ID),  % open a stream
    repeat,             % try again forever
    read(ID, X),        % read from the stream
    write(X), nl,       % write to current output stream
    X == end_of_file,   % fail (backtrack) if not end of 
    !,
    close(ID).

しかし、私は、

ERROR: text.txt:1:0: Syntax error: Operator expected

私は何をすべきか?

ベストアンサー

read/2 reads valid Prolog text. The message
suggests, that in line 1 of text.txt you have some invalid Prolog
text. Maybe a couple of words separated by spaces.

通常のテキストを読む場合は、 get_char/2
を使用して非常に低レベルにするか、文法を使用してより高いレベルで行うことができます。 SWI-Prologはそのために
library(pio)を持っています。

ここで、Prologプログラマは grep -q と同等です。

?- phrase_from_file((...,"root",...),'/etc/passwd').
true ;
true ;
true ;
false.

実際、それはむしろ grep -c です。

あなたは次の定義をロードする必要があります:

... --> [] | [_], ... .

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です