Prolog:得到符号谓词

时间:2016-04-06 15:43:21

标签: prolog

我有一个带结构的符号表:

key → [value | R]

我想写一个谓词get_symbol / 2,它接收一个键(它的第一个参数),并将一个值(它的第二个参数)与符号表中与key相关的第一个值组合在一起。

任何人都可以帮我解决这个问题吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

尚未描述符号表的实际表示。让我们假设一个逻辑表示,它将是一组事实,sym_table(Key, Value).符号表将成为事实:

sym_table(key1, [val1_1, val1_2, ...]).
sym_table(key2, [val2_1, val2_2, ...]).
...

然后,获取给定键的第一个值的get_symbol/2谓词将如下所示:

get_symbol(Key, Value) :-
    sym_table(Key, [Value | _]).

请注意,如果(1)符号表中不存在Key,或者(2)Key没有值,则此谓词将失败,如预期的那样(我假设需要) (它在数据库中表示为sym_table(Key, []).