Je suis très intrigué par CLIPS. J'ai défini dans un fichier .clp un deftemplate et une règle.CLIPS deftemplate type d'emplacement incorrect
(deftemplate basic-ch "Basic characteristics template"
(slot ch-name
(type SYMBOL)
(default ?DERIVE)
)
(slot score
(type INTEGER)
(default 1)
(range 1 5)
)
)
(defrule make-ch
?get-ch <- (get-ch TRUE)
=>
(printout t "Enter ch name" crlf)
(bind ?name (read))
(printout t "Enter ch score" crlf)
(bind ?score (read))
(assert (basic-ch (ch-name ?name) (score ?score)))
(retract ?get-ch)
)
Quand je (assert (get-ch TRUE)) et (course), il me demande le nom de ch et le score. Cependant, si j'entre une chaîne pour le score, le score de la chaîne est confirmé par la règle! Par exemple:
Enter ch name
hello
Enter ch score
hello
;(basic-ch (ch-name hello)(score hello)) get asserted?!
Comment est-ce possible? J'ai défini le score pour être INTEGER et même fourni la gamme. Comment puis-je arrêter cela?