ファイルを読み込んで、すべての行に単語をリストとして保存したいと考えています。これは私のコードです:Amzi Prolog Tokenize
main :-
open('sample.txt', read, Str),
read_file(Str,Lines),
close(Str),
write(Lines), nl.
read_file(Stream,[]) :-
at_end_of_stream(Stream).
append1([H|T],Old_list,New_list):-
New_List = [H|Old_list],
write(New_List),
append1(T,New_List,New_list).
read_file(Stream,[X|L]) :-
\+ at_end_of_stream(Stream),
read(Stream,X),
write(X),
append1(X,[],New_List),
read_file(Stream,L).
ここではXは用語ですが、私は自分のプログラムを動作させることができません。
Input : 'Australia', 'Singapore','23','34','Mon/Tue'.
Output : New_List=[Australia,Singapore,23,34,Mon/Tue].
私はAmzi prolog btwを使用しています。
ありがとうございました!
あなたの例では、物事の入力側でかなりのフォーマットをしたいと考えています。あなたが表示しているように入力が「素敵」であれば、必要なリストを取得するには、指定された行を1つの文字列として入力し、終了期間を取り除き、その前後に角括弧をスラップします。結果の文字列は、Amziの述語** string_term **によって、必要な数の項目を持つリストとして解析されます。私の解答で概説されているアプローチは、より堅牢で汎用性のある方法です。 – hardmath