我正在研究一种营养诊断系统,在该系统中,向用户询问问题/症状,然后输入是或否进行响应。我想跟踪是或否的计数并使用它们进行计算。像在全局变量中存储是或否的计数。我已经有一个计算功能,但是不确定如何从用户输入中捕获是或否。我是刚接触Jess规则的人。在下面,我添加了工作规则代码。
(defrule menu::initialize
(diagnosis)
=>
(assert
(question (ident q21) (text "Does the child's hair tend to be slight? (Yes or No)") (type yes-no))
(question (ident q22) (text "Does the child's hair tend to be reddish? (Yes or No)") (type yes-no))
(question (ident q23) (text "Is the child often affected by ISPA/ TBC? (Yes or No)") (type yes-no))
(question (ident q24) (text "Does the child's hair tend to be easily falls off? (Yes or No)") (type yes-no))
(question (ident q25) (text "Is there any abnormality on the child's complexion? (Yes or No)") (type yes-no))
(question (ident q26) (text "Is there any swelling on the child's face? (Yes or No)") (type yes-no))
)
(menu::init)
)
答案 0 :(得分:1)
您已经显示了一个名为“ menu :: initialize”的规则,该规则会插入一些称为“ question”的事实。您需要一个规则来激发这些事实,然后该规则将包含一条语句,将1加到全局变量中。您可以在Jess手册中找到规则和使用全局变量的示例。
请不要指望SO上有人为您做功课。
答案 1 :(得分:0)
我实现了上面建议的解决方案,并得到了我一直在寻找的东西。
我在下面的实现:。可能不是最佳解决方案,但它可以工作。谢谢SO:D
function getDetails(url){
return new Promise((resolve, reject) => {
fetch(url, {mode: 'no-cors'}).then(res => {
resolve(res);
}, error => {
console.log(err);
})
})
}
var u = "https://get.geojs.io/v1/ip/country.json";
getDetails(u).then(function(resp){
console.log(resp);
})