假设我在Prolog中有以下规则:
await
我是否应该执行以下操作来优化代码,或者编译器是否在这些情况下自行完成?
same_head():- same_costly_predicate(), a_predicate().
same_head():- same_costly_predicate(), another_predicate().
这是一个优化,因为在第一个代码块中,如果成功,则same_costly_predicate()将被计算两次。
是否有任何文章解释上述内容并帮助编写更有效的代码?