如何调用在 Prolog 中附加两个列表的谓词?
How to call a predicate that appends two lists in Prolog?
我到处都看到这样的东西:append([1,2,3],[a,b,c],appended).
,
但是如果我有 2 个列表:ok([1,2,3]).
和 hello([a,b,c]).
并且我想将 ok
和 hello
附加在一起。
为什么 append(ok,hello,appended).
不起作用?
如果列表已经定义,我将如何做到这一点而不必手动输入每个元素?
您首先查询列表,然后附加它们:
ok( OK), hello( Hello), append( OK, Hello, Appended).
Prolog 的逻辑变量名称必须以大写字母开头。
如果您只想查看 Appended
报告的查询结果,请尝试
ok( _OK), hello( _Hello), append( _OK, _Hello, Appended).
正如 Enigmativity 的评论中所建议的那样,另一种不那么骇人听闻的方法是为此定义一个特殊用途的谓词,
appended( Appended) :-
ok( OK), hello( Hello), append( OK, Hello, Appended).
我到处都看到这样的东西:append([1,2,3],[a,b,c],appended).
,
但是如果我有 2 个列表:ok([1,2,3]).
和 hello([a,b,c]).
并且我想将 ok
和 hello
附加在一起。
为什么 append(ok,hello,appended).
不起作用?
如果列表已经定义,我将如何做到这一点而不必手动输入每个元素?
您首先查询列表,然后附加它们:
ok( OK), hello( Hello), append( OK, Hello, Appended).
Prolog 的逻辑变量名称必须以大写字母开头。
如果您只想查看 Appended
报告的查询结果,请尝试
ok( _OK), hello( _Hello), append( _OK, _Hello, Appended).
正如 Enigmativity 的评论中所建议的那样,另一种不那么骇人听闻的方法是为此定义一个特殊用途的谓词,
appended( Appended) :-
ok( OK), hello( Hello), append( OK, Hello, Appended).