2013-11-02 30 views
1

我想知道如果it's可能在序言中單獨的文件,例如單獨的文件: 我想有我界面,規則,事實,在不同的文件諮詢,讓他們一起工作。如何在序言

+0

是的,這是可能的。查看'include'指令。 – lurker

回答

1

簡短的回答,是的。長時間的答案取決於「界面」的含義,以及您的要求有多簡單或複雜。正如mbratch指出的那樣,可以使用ISO Prolog標準include/1指令來包括例如包含這些謂詞定義的文件中的一組謂詞指令。另一方面,如果您的應用程序需要同一接口的多個實現,則可以將Prolog模塊與include/1指令一起使用,其中每個模塊將根據您希望作爲接口提供的實現提供實現,或使用Logtalk提供接口作爲第一類實體。然而,更合理的建議和詳細的答案需要您提供更多關於您想要完成的信息。

+0

嗨Paulo當我說接口我正在談論使用xpce的GUI。我想要做的事情很簡單,我不喜歡將所有內容都保存在一個文件中(事實,規則,諮詢,GUI),我想只在一個文件中有事實,在另一個文件中有規則我希望能夠通過我的規則或諮詢訪問事實...... –

2

是 - 看SWI-Prolog的文檔中的 '模塊'。

總之,你請教一個文件,並將其加載他人。所以,說你有a.pl,b.pl等

這裏的b.pl

熊(X): - 寫( '我看到一個叫熊'),writeln(X)。公牛(X): - 寫('我看到一隻名叫''的公牛),寫(X)。

在b.pl

的頂部放

: - 模塊(B,[承受/ 1])。

現在你可以使用熊(中/ 1的意思是「有一個說法」)文件之外。

in a.pl put

: - use_module(b)。

請注意,有對

沒有特等,然後你可以參考承受

最終方案

a.pl

: - use_module(B)。

go: - 熊('Yogi')。

b.pl

: - 模塊(b,[bear/1])。

熊(X): - 寫( '我看到一個叫熊'),writeln(X)。公牛(X): - 寫('我看到一隻名叫''的公牛),寫(X)。

這種方式可以使事情像牛/ 1專用於單個模塊。