CLIPS-谓词字段约束

一、

?print-mark<-(printmark (name ?name)(no?no&:(numberp ?no)))中)(no?no&:(numberp ?no))表示no谓词字段约束,即:no一定要为数字。

二、操作
        CLIPS (Quicksilver Beta 09/24/07)
CLIPS> (deftemplate student
(slot name)
(slot no)
(slot mark))

CLIPS>
(deftemplate printmark
(slot name)
(slot no)
)
CLIPS> (assert (student(name liuhui)(no 1)(mark60))
(student(name liuhui)(no 2)(mark 70)))

<Fact-2>

CLIPS> (defrule print-studentmark
?print-mark<-(printmark (name ?name)(no?no&:(numberp ?no)))
(student (name ?name) (no ?no)(mark ?mark))
=>
(retract ?print-mark)
(printout t "mark:" ?mark crlf)
)

CLIPS> (facts)
f-0    (initial-fact)
f-1    (student (name liuhui) (no 1) (mark 60))
f-2    (student (name liuhui) (no 2) (mark 70))
For a total of 3 facts.

CLIPS> (assert (printmark (name liuhui)(no1)))
<Fact-3>
CLIPS> (run)
mark:60
CLIPS> (assert (printmark (name liuhui)(noerr)))
<Fact-4>
CLIPS> (run)
CLIPS> (facts)
f-0    (initial-fact)
f-1    (student (name liuhui) (no 1) (mark 60))
f-2    (student (name liuhui) (no 2) (mark 70))
f-4    (printmark (name liuhui) (no err))
For a total of 4 facts.
CLIPS>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值