我有以下代码:序言检查清单
check([],[]).
check([X], [Y]) :-
X > 0,
Y is 1.
check([X], [Y]) :-
X =:= 0,
Y is 0.
check([L1|Tail], [L2|Tail2]) :-
L1 > 0,
L2 is 1,
check(Tail,Tail2).
check([L1|Tail], [L2|Tail2]) :-
L1 =:= 0,
L2 is 0,
check(Tail,Tail2).
谓词检查创建了一个表格替换所有的项目比0
大到1
。 这个谓词适用于这样一个简单的列表L = [3,4,5,6,0]
,并产生一个列表L1 = [1,1,1,1,0]
。
我需要进行谓词检查以接受列表作为项目列表。例如:L = [[2, 3, 4], [4, 0, 6], [5, 6, 3]]
。列表中的项目与项目列表中的项目一样多。这意味着如果列表包含3个项目列表,则每个项目列表应包含3个项目。
目前尚不清楚对我有什么你牛逼试图完成。您能否发布您的示例列表清单的预期输出结果? (在你原来的代码中,顺便说一句,第二和第三个谓词是多余的,可以删除) – mgibsonbr 2012-01-08 01:46:14
负数呢?你的代码表明失败,你的文本表明它们保持原样。 – false 2012-10-07 22:46:43