我在那里找到了函数CLIPS Validate Text Entry,我想以这种方式扩展它:
(deffunction MAIN::ask-question
(?mark ?question $?allowed-values)
(printout t ?question)
(bind ?answer (read))
(if (lexemep ?answer)
then
(bind ?answer (lowcase ?answer))
(assert car-mark
所以,如果用户输入是/否,我计划在我的事实中添加新的标记 - 否则 - 不添加事实。但剪辑会出错:
[PRNTUTIL2]语法错误:检查RHS模式的相应语法。
ERROR:
private static int times(String A, String B) {
StringBuffer aPlus = new StringBuffer(A);
int times = 1;
while (aPlus.length() < B.length()) {
aPlus.append(A);
times++;
}
if (aPlus.indexOf(B) != -1) {
return times;
}
// prefix
aPlus.append(A);
if (aPlus.indexOf(B) != -1) {
return ++times;
}
//suffix
aPlus.insert(0, A);
if (aPlus.indexOf(B) != -1) {
return ++times;
}
return -1;
}
我的car-mark模板:
(deftemplate car-mark (插槽名称) )
如何正确添加新事实并考虑用户输入(是 - 添加,不 - 不添加)?
答案 0 :(得分:0)
(assert (car-mark (name "foo")))