【发布时间】:2020-05-17 21:53:34
【问题描述】:
我想在 Prolog 中编写一个规则,返回给定列表中的偶数元素。例如: even_elements([1,2,3,4], Result) 将返回 Result: [2,4]
这是我目前所拥有的:
% This is my base case.
even_elements([H|T], Result) :- (0 is mod(H,2) -> Result = [H|T] ; Result = T).
% This is my recursion.
even_elements([H|T], [H|NT]) :- even_elements(T, NT).
基本情况正常工作并消除第一个元素,如果它是奇数;但递归不会改变任何东西。感谢您提供有关如何完成递归的任何提示。
【问题讨论】:
-
基本情况看起来不像基本情况。