2011-01-05 3 views
2

Wie kann ich die benötigten Begriffe in der Datei speichern? Zum Beispiel spartWie kann der Term in Prolog gespeichert werden?

save_to_file(File) :- 
    tell(File), 
    listing,   
    told. 

alle Benutzer Begriffe File Datei. Aber wie kann ich nur notwendige Begriffe in Datei speichern?

Antwort

3

Ihre Definition von safe_to_file/1 ist sicherer mit open/3 und close/1. Andernfalls würden Interrupts oder Fehler, die während der Auflistung/0 auftreten, den Stream offen lassen, so dass andere Teile versehentlich in dieselbe Datei schreiben können. So,

save_to_file(File) :- 
    open(File,write,Stream), 
    with_output_to(Stream, listing), 
    close(Stream). 

ist sicherer. Jetzt kann nur Listing in diese Datei schreiben. with_output_to/2 ist spezifisch für SWI, YAP.

Um zu Ihrer Frage zurückzukehren, wird in den meisten Situationen portrace_clause (Stream, Term) sein, was Sie eigentlich wollen.

+0

Aber was soll ich tun, um alle ähnlichen Begriffe wie Likes (John, Äpfel), Likes (Mike, Orangen), Likes (Mary, Kohl) zu speichern? – qutron

+2

Ändern Sie die Auflistung oben. Also, anstatt aufzulisten, können Sie die Liste (likes) ersetzen oder wenn Sie genauer sein möchten, listing (likes/2) – Roman

+0

@qutron: Ah, also was Sie wollen, ist nicht einen Begriff zu speichern, sondern eine Auswahl zu speichern Prädikat zu einer Datei. – false

Verwandte Themen