2015-12-05 32 views
1

我是CLIPS的超级新手,我正在编写交互式葡萄酒检测系统。该系统适用于输入,如“是”和“否”。但是我想把它再提升一级,并让它接受像。 “我不确定”。如何使用功能在CLIPS中搜索字符串

基本上,我想将下面的伪代码转换为CLIPS。

def ask_for_input(): 

    user_inp = input("gimme dat") 

    if "yes" in user_inp: 
     return "yes" 
    elif "no" in user_inp: 
     return "no" 
    elif "know" in user_inp: 
     return "idk" 
    else : 
     return "invalid" 
     # ask for input again now 

回答

0

使用str-index搜索另一个字符串。由于“知道”包含子字符串“否”,因此您需要首先搜索“知道”:

CLIPS> 
(deffunction ask_for_input() 
    (bind ?user_inp (readline)) 
    (if (str-index "yes" ?user_inp) 
     then (return "yes") 
     else 
     (if (str-index "know" ?user_inp) 
     then (return "idk") 
     else 
     (if (str-index "no" ?user_inp) 
      then (return "no") 
      else (return "invalid"))))) 
CLIPS> (ask_for_input) 
yes 
"yes" 
CLIPS> (ask_for_input) 
yah 
"invalid" 
CLIPS> (ask_for_input) 
I don't know 
"idk" 
CLIPS> (ask_for_input) 
not really 
"no" 
CLIPS> 
相关问题