gpt4 book ai didi

java - 有没有什么方法可以参数 Jess,使其在同一规则中永远不会有太多具有不同名称的变量?

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:49 24 4
gpt4 key购买 nike

我通过示例解释我的问题。

(deftemplate point (slot a)(slot b))

(assert (point (a 1)(b 1)))    
(assert (point (a 1)(b 2)))
(assert (point (a 2)(b 2)))

我想获得所有可能的点,同时避免具有相同 a 和 b 值的点。 (否 [a,b] = [1,1] v [2,2] v ..)

(defrule r1    
(point (a ?x)(b ?y))
(test (neq ?x ?y))
=>
(printout t "Point (a = " ?x ")(b = " ?y ")" crlf))

Point (a = 1)(b = 2) 

好!

为了优化性能:我想避免传递“测试”条件元素。 (测试(neq?x?y))

那么有没有什么方法可以对引擎进行参数化,使其在同一规则中永远不会有太多具有不同名称的变量?

目的是使用..

(defrule r1
(point (a ?x)(b ?y))
=>
(printout t "Point (a = " ?x ")(b = " ?y ")" crlf))

最佳答案

编写此规则的最有效方法如下:

(defrule r1    
(point (a ?x)(b ?y&~?x))
=>
(printout t "Point (a = " ?x ")(b = " ?y ")" crlf))

关于java - 有没有什么方法可以参数 Jess,使其在同一规则中永远不会有太多具有不同名称的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42934990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com