从事实中获取提取值

时间:2017-12-16 16:15:19

标签: prolog visual-prolog

我对prolog很新,并且卡住了。 我需要在计算过程中存储一个带有一些字符串的变量,我决定通过在我正在使用的类中添加“单个事实”来实现这一点。一切正常,字符串被存储,但是当我尝试添加代码以便稍后访问它时,编译器返回错误"The expression has type 'dataBL::dataBL@objectDB', which is incompatible with the type '::symbol'".
我不认为这是存储变量的有效方法,所以,任何人都可以帮助我吗?我试着在网上搜索答案,但一无所获。

我正试图访问这样的事实:

    getString(U) :-
    U = stringStorage(_).

1 个答案:

答案 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)