2015-10-06 52 views
0

CLIPS嵌套的正確語法是什麼?如果嵌套CLIPS

(defrule determina-si-tiene-gripe "" 
?A <- (enfermedad (Gripe nose) (compostura)) 
=> 
(if (si-o-no-p "Tiene Fiebre(si/no)? ") 
(if (si-o-no-p "Tiene dolores en el cuerpo(si/no)? ") 
    if (si-o-no-p "Tiene dolor de garganta(si/no)? ") 
     then (modify ?A (Gripe si)(compostura "El paciente tiene un Resfrio")) 
    else (modify ?A (Gripe no))) 
else (modify ?A (Gripe no))) 
else (modify ?A (Gripe no)))) 

回答

0

嵌套如果最別的只是另一種動作的內部然後或者分支,如在doc指出:

可以內部使用的則不然部分的任何數量的允許的操作的,包括另一個if ... then ... else結構。

所以它應該是這樣的

​​

但是看來,如果的,所有需要你的例子並不需要嵌套是一個,如果有幾個條件:

(if (and (si-o-no-p "Tiene Fiebre(si/no)? ") 
     (si-o-no-p "Tiene dolores en el cuerpo(si/no)? ") 
     (si-o-no-p "Tiene dolor de garganta(si/no)? ")) 
    then 
    (modify ?A (Gripe si)(compostura "El paciente tiene un Resfrio")) 
    else (modify ?A (Gripe no))) 

(似乎有涉及用戶輸入,但這可能無論如何工作)