2013-05-05 54 views
1

我正在嘗試編寫一個簡單的翻譯腳本,但該文件變得相當......冗長且令人困惑,主要是因爲我已將所有翻譯存儲在文件末尾。它們的格式爲動詞(英語,芬蘭語)。我可以使用Prolog從另一個文件中檢索信息嗎?

我想知道是否有任何方法將它們存儲在不同的文件中,所以我不需要處理它們。 我已經研究過使用諮詢謂詞,但我不認爲這正是我所需要的。在SWI-prolog中有沒有辦法做到這一點?

爲了記錄在案,如果我用商量謂語,我收到此錯誤信息:如果我嘗試使用諮詢謂詞

,不過,我得到這個錯誤:

Warning: The predicates below are not defined. If these are defined 
Warning: at runtime using assert/1, use :- dynamic Name/Arity. 
Warning: 
Warning: verb/2, which is referenced by 
Warning:  c:/users/grant/documents/prolog/string_dictionary.pl:6:8: 1-st clause of translate_word/2 

回答

1

你可以使用指令multifile,一起consult/1或include/1,但我會建議,而不是切換到modules。多一點工作,獎勵更好的維護和支持。

在動詞的頂部添加文件中聲明

:- module(verbs, [verb/2]). 

,然後在您的翻譯腳本中加入

:- use_module(verbs). 
+0

這正是我所尋找的。謝謝。 – UrhoKarila 2013-05-06 05:59:09

0

我覺得consult/1是你需要的。

只要將您的verb事實(順便說一句,爲什麼Verb在您的問題中大寫?事實和規則名稱不能以大寫字母開頭)放入單獨的文件並在主Prolog文件中查閱該文件。

+0

這是一個錯字,對不起。 – UrhoKarila 2013-05-05 20:18:41

相關問題