Prolog 递归谓词
Prolog Recursive Predicates
在 Prolog 中给出递归定义:
定义一个谓词,当且仅当 X 时,该谓词持有参数 X
是一个列表,X的长度是奇数。
多年来我一直在努力解决这个问题。我只是想自己学习ProLog,在一本书上发现了这个问题。
我试过了,但它可能只适用于偶数长度的列表。
mult2_length( [] ).
mult2_length( [ _, _ | Xs ] ) :-
mult2_length( Xs ).
谁能帮帮我?
你必须有像这样的谓词:
list([]) :- fail.
list([_]).
list([_,_|T]) :- list(T).
您只需不断从列表中删除 2 个元素,直到出现 0 或 1 个元素。
在 Prolog 中给出递归定义: 定义一个谓词,当且仅当 X 时,该谓词持有参数 X 是一个列表,X的长度是奇数。
多年来我一直在努力解决这个问题。我只是想自己学习ProLog,在一本书上发现了这个问题。
我试过了,但它可能只适用于偶数长度的列表。
mult2_length( [] ).
mult2_length( [ _, _ | Xs ] ) :-
mult2_length( Xs ).
谁能帮帮我?
你必须有像这样的谓词:
list([]) :- fail.
list([_]).
list([_,_|T]) :- list(T).
您只需不断从列表中删除 2 个元素,直到出现 0 或 1 个元素。