调用CLIPS操作修改导致系统挂起

时间:2019-05-19 23:00:04

标签: clips

我正在通过调用(modify)操作来修改模板化的事实,但这会导致CLIPS挂起。

规则:

(deffunction reset-allowed-values "Resets allowed values"
    ; no argument
    ($?arg)
    (if (eq (any-factp ((?fact model1)) TRUE) TRUE)
        then
            ;T1_1, T2_1, T3_1
            (do-for-all-facts ((?fact ar-node)) (eq ?fact:trip 1)
                (modify ?fact (allowed-values A B C D E F))))

主要:

int main(void) 
{   
    DATA_OBJECT rtn;
    void *env = CreateEnvironment();
    printf("Environment Created!\n");

    EnvSetConserveMemory(env, 1);

    int result = EnvLoad(env, "custom/rules/test.clp");
    if(result == 0) {
        printf("Unable to find the consruct!\n");
        DestroyEnvironment(env);
        return(1);
    } else if(result == -1) {
        printf("Unable to load the consruct!\n");
        DestroyEnvironment(env);
        return(1);
    }
    printf("Construct Loaded!\n");

    EnvReset(env);
    printf("Environment Reset!\n");

    EnvFunctionCall(env,"reset-allowed-values", 0, &rtn);

    printf("CLIPS test done! Used memory %ld bytes.\n", EnvMemUsed(env));

    DestroyEnvironment(env);

  return(0);
}

我目前不知道为什么修改调用导致对重置允许值的调用不返回。 CLIPS是在UBUNTU Linux 32位中构建和运行的。任何人都可以帮助我,对此非常感谢。 非常感谢。

0 个答案:

没有答案