如何分隔 min() 谓词序言中的值
how to separate the values in min() predicate prolog
我有一个谓词
cheapest(X,Y,T):-
findall([Ci,Cj],trip_cost(X,Y,[Ci,Cj]),K),
aggregate_all(min(A,B),
member([B,A], K),
T).
它给出的结果类似于
min(8,[a,b,m])
我想让它与像
这样的谓词一起工作
cheapest(X,Y,T,C):-
findall([Ci,Cj],trip_cost(X,Y,[Ci,Cj]),K),
aggregate_all(min(A,B),
member([B,A], K),
T).
并想要像
这样的结果
T=[a,b,m]
C=8
cheapest(X,Y,T,C):-
cheapest(X,Y,min(C,T)).
我还不能测试它,因为没有知识库。
或类似的不需要 cheapest/3
:
cheapest(X,Y,T,C):-
findall([Ci,Cj],trip_cost(X,Y,[Ci,Cj]),K),
aggregate_all(min(A,B),
member([B,A], K),
TT),
TT = min(C,T).
我有一个谓词
cheapest(X,Y,T):-
findall([Ci,Cj],trip_cost(X,Y,[Ci,Cj]),K),
aggregate_all(min(A,B),
member([B,A], K),
T).
它给出的结果类似于
min(8,[a,b,m])
我想让它与像
这样的谓词一起工作cheapest(X,Y,T,C):-
findall([Ci,Cj],trip_cost(X,Y,[Ci,Cj]),K),
aggregate_all(min(A,B),
member([B,A], K),
T).
并想要像
这样的结果T=[a,b,m]
C=8
cheapest(X,Y,T,C):-
cheapest(X,Y,min(C,T)).
我还不能测试它,因为没有知识库。
或类似的不需要 cheapest/3
:
cheapest(X,Y,T,C):-
findall([Ci,Cj],trip_cost(X,Y,[Ci,Cj]),K),
aggregate_all(min(A,B),
member([B,A], K),
TT),
TT = min(C,T).