Prolog递归谓词



在prolog中给出递归定义:定义一个谓词,该谓词在且仅当x时才定义一个参数x是一个列表,x的长度很奇怪。

我一直在尝试解决这个问题。我只是想自己学习序言,并在书中发现这个问题。

我已经尝试过,但它可能仅适用于均匀的列表。

mult2_length( [] ).
mult2_length( [ _, _ | Xs ] ) :-
  mult2_length( Xs ).

任何人都可以帮我吗?

您必须具有这样的谓词:

list([]) :- fail.
list([_]).
list([_,_|T]) :- list(T).

您只是继续从列表中删除2个元素,直到有0或1个。

相关内容

  • 没有找到相关文章

最新更新