[英]To find maximum and minimum of a list in prolog
domains
list = integer*//shows error in swish saying "syntax error operator
expected"
Max = integer
predicates
maximum_no(list,integer)
clauses
maximum_no([],Max):-
write("Maximum No in List is:: ",Max),nl.
maximum_no([H|T],Max):-
H>Max,
N = H,
maximum_no(T,N).
maximum_no(L,Max):-
maximum_no(L,Max).
有人可以告诉我如何解决这个错误吗? 我确实发现代码是正确的,但它仍然说错误? 我还必须编写代码来查找列表的最小数量!
为了找到列表的最大值,以下单独工作:
% the maximum of a list of one element is this element
maximum_no([X],X).
% the maximum of a list is either the head or the maximum of the tail
% depending on if the head is lower than the max of the tail.
maximum_no([H|T],Max):-
maximum_no(T,Max),
H @< Max.
maximum_no([Max|T],Max):-
maximum_no(T,M),
M @< Max.
然后,找到列表的最小值应该不会太复杂。
这应该工作。 对于最低限度,只需进行适当的更改。
maximum_no([H|T],Max):- maximum_no(T,MX), Max 为 max(H,MX)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.