dram.me

缺陷和优势

Logtalk作者曾指出众多Prolog实现的模块机制的一个问题:虽然有独立的名字空间,但在使用其中的谓词时一般又去除了模块名前缀,这样降低了代码的可读性。

当和Logtalk结合使用时,可以通过object封装以规避这一问题。将用到的backend谓词统一在该对象中组织,这样整体上代码会非常清晰。这一定程度上也是得益于Prolog中谓词的命名机制(不依赖于模块名),在封装时即使不更改谓词名,也不会产生名字冲突。