如何在KRL中设置谓词?

时间:2011-03-29 10:03:44

标签: krl

我的全局块中有以下内容:

test = defaction(){
    if(5>10) then {
        notify("yes","yes");    
    }
}

然后我也有以下规则:

rule tester {
    select when pageview ".*"
    test();
}

我希望通知永远不会发生,因为5永远不会超过10.但是,它会在每一页上运行。我确信我做错了,虽然感觉不错。

1 个答案:

答案 0 :(得分:2)

谓词(例如if (5>10) then不是动作块的一部分。因此,包括defaction中的谓词没有意义。你必须更多地写它:< / p>

global {
    test = defaction(){
        notify("yes","yes");    
    }
}

rule tester {
    select when pageview ".*" setting ()
    if (5>10) then {
        test();
    }
}

if...then构造实现与every构造相同的功能:它包装动作块。