【问题标题】:Find facts using multiple values使用多个值查找事实
【发布时间】:2013-03-27 08:52:51
【问题描述】:
   (defglobal ?*myGlobal* = 0)

    (deftemplate myTemp
        (slot one)
        (slot second)
        (slot third)
        (slot fourth)

)

 (find-fact ((?p myTemp)) (eq ?p:one aValue))

我想根据多个值匹配一个事实;上面的代码只使用一个值匹配事实。

【问题讨论】:

    标签: clips


    【解决方案1】:

    你可以只使用布尔子句:

    (assert (myTemp (one asd) (second jhg))
            (myTemp (one asd) (second kjh))
            (myTemp (one bvc) (second jhg))
            (myTemp (one bvc) (second jhg) (third qwe)))
    
    (find-fact ((?p myTemp)) (or (eq ?p:one bvc) (eq ?p:third qwe))
    (<Fact-4>)
    
    (find-fact ((?p myTemp)) (or (eq ?p:one bvc) (eq ?p:second jhg))
    (<Fact-1>)
    
    (find-all-fact ((?p myTemp)) (or (eq ?p:one bvc) (eq ?p:second jhg))
    (<Fact-1> <Fact-3> <Fact-4>)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多