【发布时间】:2022-05-09 17:19:20
【问题描述】:
我将如何编写一个包含两个子句的递归定义来查找列表中的最大值。到目前为止,我已经写了这个:
max(L,M):-
max([H|T],M):-
max(T,H,M).
max([],M,M).
max([H|T],Y,M):-
H =< Y,
max(T,Y,M).
max([H|T],Y,M):-
H > Y,
max(T,H,M).
这不起作用,它说有一个我看不到的语法错误,而且我知道它也不是两个子句。有谁知道我可以如何简化它以使其成为两个子句?
【问题讨论】:
-
如果这是作业,您应该在问题中添加“作业”标签。
-
不,这不是作业,这只是我在尝试使用 prolog 时遇到的一个基本困难。
标签: prolog