用 clips 模拟生态第0步:单体永生
单个体,年龄加一
从最基本的开始 1.clp:
(deftemplate 某种
(slot 年龄))
(defrule 开始
=>
(println "开天辟地")
(assert (某种 (年龄 0))))
(defrule 时间流逝
?个体 <- (某种 (年龄 ?年龄))
=>
(modify ?个体 (年龄 (+ ?年龄 1)))
(halt))
load.bat:
(unwatch all)
(clear)
(load 2.clp)
(reset)
运行效果:
CLIPS> (batch* load.bat)
%**
TRUE
CLIPS> (run)
开天辟地
CLIPS> (facts)
f-1 (某种 (年龄 1))
For a total of 1 fact.
单个体永生
将 1.clp 去掉 (halt) 后,估计就能自行递增了。
运行后,输出「开天辟地」后未显示提示符,看起来是在无限循环了。
打开 Debug -> Fact Browser,可以看到该个体的年龄在不断递增,挺方便:
CPU 占用 100%。IDE 右上角的 Pause 按下后,递增即暂停,放开 Pause 继续。
完全停止运行 Environment 可 Halt Execution。