【发布时间】:2021-02-07 01:10:42
【问题描述】:
在我的 prolog 数据库中,我有以下事实:
played('Sharon rose', piano).
played('Robert Kay', piano).
played('Kelvin Cage', drums).
singer('Robert Kay').
band_leader('Sharon rose').
我想将所有名称唯一地打印为一个列表。
下面是我使用 setof 的查询和输出:
setof(X, (played(X,_);singer(X);band_leader(X)), Output).
Output = ['Robert Kay','Sharon rose'] ? ;
Output = ['Kelvin Cage'] ? ;
Output = ['Robert Kay','Sharon rose']
yes
但是,输出不是我想要的。 我希望它以列表的形式唯一地打印出名称。
【问题讨论】:
-
您打算将
Drums设为Drums还是drums? -
它是鼓(小写字母“d”,而不是“Drums”),是一个错字。感谢您注意到这一点。我更正了。
标签: prolog prolog-setof