我有谓词如下快速PROLOG查询
dur(a,1).
dur(b,2).
dur(c,3).
dur(d,4).
说我要加入列表的元素[A,B,C]所以总和= 6 如何访问与关联的值变量?
因为这样的事情
len([],0).
len([H|T], Sum) :-
len(T, Rest),
Sum is H + Rest.
不起作用,它工作正常[1,2,3],但不是为[A,B,C]这是有道理的,但我不没有线索如何使它为列表len([a,b,c],Sum)工作。
如果你有原子'了',你可以得到它的价值通过查询'dur(a,Value)'。如果你有一个变量X,你可以通过查询'dur(X,Value)'来得到任何'X'的值。你可以在你的'len'谓词中使用它来对这些值进行求和,而不是尝试对原子本身求和。 – lurker