使用Prolog

时间:2018-03-27 17:16:59

标签: prolog

对于作业,我被要求以两种不同的方式定义一个置换函数;一个人使用delete(X,L1,L2),如果L1=L2\X则为真,而insert(X,L1,L2)使用的L2-L1 = [X]如果join([],L,L). join([X|L1],L2,[X|L3]) :- join(L1,L2,L3). delete(X,L1,L2) :- join(L3,[X|L4],L1), join(L3,L4,L2). insert(X,[],[X]). insert(X,L1,L2) :- delete(X,L2,L1). permutationDelete([],[]). permutationDelete([H|L1],L2) :- delete(H,L2,L3), permutationDelete(L1,L3). permutationInsert([X|L1],L2) :- insert(X,L1,L2), 则为真。

到目前为止,除了使用插入函数的置换生成器之外,我已经完成了所有工作。我目前的代码:

SELECT
  u.name,
  a.address
FROM user u
  JOIN appartment a ON u.appartment_id = a.id
UNION
SELECT
  name,
  NULL AS address
FROM user
WHERE apartment_id IS NULL
;

但我似乎无法找到一个可行的算法来使用插入函数。有什么提示吗?

0 个答案:

没有答案