0
はここで誤るエラーの要約です:クリップ - その後、他の機能が与えられる場合は、[CSTRCPSR1]
CLIPS> (load "C:/Users/labor/Desktop/Witek/projekt.CLP")
Defining defrule: R1 +j+j
Defining defrule: R2 +j+j
Defining defrule: R3 =j+j+j
Defining defrule: imie-if =j=j+j+j
[CSTRCPSR1] Expected the beginning of a construct.
そして、ここでは私のクリッププログラムのコードです。名前と姓がAbraham Lincolnと異なる場合は、基本的には違う反応をしたい。
(defrule R1
(initial-fact)
=>
(printout t "Enter your name:" crlf)
(bind ?name (read))
(assert (name ?name)))
(defrule R2
(name ?name)
=>
(printout t "Enter your last name" crlf)
(bind ?lastnm (read))
(assert (lastnm ?lastnm)))
(defrule R3
(and(name ?name)(lastnm ?lastnm))
=>
(printout t "How old are you " ?name "?" crlf)
(bind ?age (read))
(assert (age ?age)))
(defrule name-if
(name ?name)(lastnm ?lastnm)(age ?age)
=>
(if(and(eq ?name Abraham)(eq ?lastnm Lincoln))
then (printout t "Hello " ?name " " ?lastnm ", you are " ?age " years old bro" crlf))
else (printout t "Hello " ?name " " ?lastnm ", you are " ?age " years old" crlf)))
は、私はいくつかのWebページからif文のロジックをコピーして、私はこのケースでは、「EQ」は何の略か、非常にわからない...あなたはさらにそれの役割を説明することができれば、私は感謝します。
よろしく、あなたが問題を引き起こしているthen節の最後に余分な右括弧を持って
大きな大きな感謝のゲイリー。さらに、名前のように見えます。実際には、名前が「 - 」の場合は実際には「 - 」と表示されます。 – VitGryfny
ハイフンはシンボルの一部として使用できます。演算子として使用するときは、かっこのようなデリミタかどちらかの側のスペースが必要です。 –