如何使用SWISH过滤Prolog

Joh*_*und 0 filtering list prolog

我需要创建一个名为fAtomPairs的谓词,以便给定一个原子(第一个参数)和一对对列表(每个对依次是两个原子的列表),通过仅选择那些对,将第三个参数与已过滤的对的列表统一起来具有作为第一个组成部分的原子是第一个参数.

例如 :

fAtomPairs(sA,[[basA,absAb],[ab,bbsA],[sA,abbsB],[bsA,sAsB],[sA,bb]],X)  
Run Code Online (Sandbox Code Playgroud)

必须导致

X = [[sA,abbsB],[sA,bb]]
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?我目前正在SWISH工作

fal*_*lse 5

:- use_module(library(reif)).   % SICStus|SWI
:- use_module(library(lambda)). % SICStus|SWI

fAtomPairs(Sel, DEs, Es) :-
   tfilter(\[A,_]^ ( Sel = A ), DEs, Es).
Run Code Online (Sandbox Code Playgroud)