了解如何在Prolog中使用arg/3和univ/2
我在Prolog中有这个数据库,我试图返回亨利拥有的东西,以及谁拥有一辆汽车和一辆卡车。我已经想尽一切办法归还亨利的财产,但没有找到解决办法。我知道如何返回谁单独拥有一辆汽车或一辆卡车?-拥有(X,汽车(,,,)),但不能同时拥有。任何帮助都将不胜感激了解如何在Prolog中使用arg/3和univ/2,prolog,Prolog,我在Prolog中有这个数据库,我试图返回亨利拥有的东西,以及谁拥有一辆汽车和一辆卡车。我已经想尽一切办法归还亨利的财产,但没有找到解决办法。我知道如何返回谁单独拥有一辆汽车或一辆卡车?-拥有(X,汽车(,,,)),但不能同时拥有。任何帮助都将不胜感激 owns(bill, car(ford, mustang, 1964)). owns(sue, car(pontiac, gto, 1967)). owns(george, car(honda, civic, 2013)). owns(betty
owns(bill, car(ford, mustang, 1964)).
owns(sue, car(pontiac, gto, 1967)).
owns(george, car(honda, civic, 2013)).
owns(betty, truck(ford, f150, 2013)).
owns(henry, motorcycle(honda, goldwing, 2010)).
Prolog有一个关系数据模型,但只允许递归术语而不是原子,比如SQL,并且不给“列”命名。松散地: ╒═════════════╤═════════════╕ │ SQL │ Prolog │ ╞═════════════╪═════════════╡ │ table │ predicate │ │ record │ clause │ │ table name │ functor │ │ column │ argument │ ╘═════════════╧═════════════╛
Prolog有一个关系数据模型,但只允许递归术语而不是原子,比如SQL,并且不给“列”命名。松散地: ╒═════════════╤═════════════╕ │ SQL │ Prolog │ ╞═════════════╪═════════════╡ │ table │ predicate │ │ record │ clause │ │ table name │ functor │ │ column │ argument │ ╘═════════════╧═════════════╛
如何
findall/3
?像这样,findall(拥有者,拥有者,拥有者)。
?-拥有者(henry,X)。
--现在X
是henry拥有的东西。findall/3
怎么样?像这样,findall(拥有者,拥有者,拥有者)。
?-拥有者(henry,X)。
--现在X
是henry所拥有的。┼这张漂亮的桌子1英镑@prolog的DB限制在哪里?如果不是的话,最优雅的方式是什么包括SQL数据库还是使用内部数据库?@AnsPiter:limit:它在内存中。。。最优雅的界面。。。我想说,但它本身就是一门真正的语言,所以要学的东西很多。。。┼这张漂亮的桌子1英镑@prolog的DB限制在哪里?如果不是的话,最优雅的方式是什么包括SQL数据库还是使用内部数据库?@AnsPiter:limit:它在内存中。。。最优雅的界面。。。我想说,但它本身就是一门真正的语言,所以要学的东西很多。。。