以下脚本有什么问题?
require_once 'models/PodioRedisSession.php';
Podio::set_debug(true, 'file');
Podio::setup($client_id, $client_secret,array(
"session_manager" => "PodioRedisSession"
));
Podio::$auth_type = array(
"type" => "password",
"identifier" => "MY_EMAIL"
);
Podio::$oauth = self::$session_manager->get(Podio::$auth_type); //ERROR IS ON THIS LINE
if (!Podio::is_authenticated()) {
Podio::authenticate_with_password('MY_EMAIL', 'MY_PASSWORD');
}
答案 0 :(得分:2)
“Discontiguous predicate”表示您为给定谓词定义了多个子句,但在两者之间定义了不同谓词的原因。 Prolog希望将给定谓词的所有子句放在一起。
以下是Prolog正确定义的示例,其中包含给定谓词或事实的多个子句:
person(sally).
person(sue).
dog(fido).
dog(fluffy).
您可以看到所有person
个事实在一起,并且所有dog
个事实都在一起。
这是一个“不连续的谓词”的例子:
person(sally).
dog(fido).
person(sue).
dog(fluffy).
此处,person
事实被dog
事实“中断”(而反之亦然)。
同样的问题也适用于谓词,因为它与事实有关。在您的情况下,want
事实会“中断”两个不同的available
子句:
want(grocerystore).
available(grocerystore). % 'available' clause occurs between two 'want' clauses
want(X) :- ...
在这种情况下轻松解决:
available(grocerystore).
want(grocerystore).
want(X) :- ...
您的程序可能还有其他问题,但我只是解决了您对“不连贯的谓词”的疑问。