我对prolog很新,并且卡住了。
我需要在计算过程中存储一个带有一些字符串的变量,我决定通过在我正在使用的类中添加“单个事实”来实现这一点。一切正常,字符串被存储,但是当我尝试添加代码以便稍后访问它时,编译器返回错误"The expression has type 'dataBL::dataBL@objectDB', which is incompatible with the type '::symbol'".
我不认为这是存储变量的有效方法,所以,任何人都可以帮助我吗?我试着在网上搜索答案,但一无所获。
我正试图访问这样的事实:
getString(U) :-
U = stringStorage(_).
答案 0 :(得分:1)
如果我找到了你,你需要存储一个与某个变量ID(value
)相关联的key
作为事实。任务的(抽象)解决方案可以将您的值存储为事实:
bind( Key, Value ).
实施实例(SWI Prolog)
贮藏
recordz('var1', "String value1"),
recordz('var2', "String value2")
查询 var2的值
current_key(-Key),
Key = 'var2'
recorded(Key, Value)