我正在学习序言,想知道是否有人给我指导如何去做这个问题,这是这个领域的第一个,知道如何做这个问题真的会帮助我进步。先感谢您。
使用 Prolog 定义一个谓词 mapof(K, M, V) ,这样,当调用 K 实例化为键,M 实例化为映射时,mapof 会将变量 V 实例化为与关联的值(或值之一) K 在映射 M 中。如果 K 在映射 M 中没有作为键出现,则谓词应该失败。
使用内置谓词,您可以像这样member/2构建谓词:mapof/3
mapof(K, M, V):- member((K,V), M).
Run Code Online (Sandbox Code Playgroud)
咨询:
?- mapof(k1, [(k, a),(k1,b),(k2,c),(k1,d)], V).
V = b ;
V = d.
Run Code Online (Sandbox Code Playgroud)