背景
整数系数列表可用于表示多项式(在 X 中)。例如,1 + 3x + 3x^2 + 2x^3 用 [1,3,3,2] 表示。
让 P 成为这些列表之一。
我需要编写公理来接受这些系数并用它们做不同的事情。
示例:关系 eval(P,A,R) 的公理,其中 R 是在 X = A 处评估由 P 表示的多项式的结果(期望 P 和 A 被完全实例化)。例如,eval([3,1,2],3,R) 产生 R=24。(这是因为 3(3)^0 + 1(3)^1 + 2(3)^2 = 3 + 3 + 18 = 24)。
本Prolog 教程讨论了递归搜索列表:“它查看某项是否是列表中的第一项。如果是,我们成功。如果不是,那么我们丢弃列表中的第一项并查看其余项” .
on(Item,[Item|Rest]).
on(Item,[DisregardHead|Tail]):-
on(Item,Tail).
问题
此代码如何丢弃列表中的第一项?
那么问题就变成了,一旦我找到它,我如何使用它来计算如上所述?