0
jess-object의 값 (String)과 일치하지 않으며 비교 값은 문자열과 다른 필드의 조합입니다. 다음은 간단한 ("실행 가능한") 예를Jess-Rule : Str-Cat in field comparison doom't compile
:
이(defclass Person (is-a :THING) (slot name (type string)) (slot email (type string)))
(mapclass Person)
(make-instance Andy of Person (name "Andy") (email "[email protected]"))
(defrule search
(object (OBJECT ?tmpPerson)
(is-a Person)
(email (str-cat (slot-get ?tmpPerson name) "@mail"))
)
=>
(print t "found")
)
그러나 코드가 JessTab에서 컴파일되지 않습니다. 필드 이름 "이름"후 "("가 허용되지 않는 것으로 보인다
오류 :. 나는이 문제를 해결할 수있는 방법
Jess reported an error in routine Jesp.parsePattern.
Message: Bad slot value at token '('.
Program text: (defrule search (object (OBJECT ?tmpPerson) (is-a Person) (name ( at line 5.
감사에서? advance
고맙습니다. 이것은 나의 하루를 만든다 :-) – user2667549
는 그것을 [...] (전자 메일 = (str-cat (slot-get? tmpPerson name) "@mail")로 변경했다)) (나의 실수, 나는 "email"-Slot "이름"이 아님) – user2667549