Prolog验证列表结构

时间:2015-10-10 20:08:59

标签: prolog

嘿伙计我昨天开始开发Prolog我需要一些帮助,对于我的大学,我应该创建一个列表检查功能。

It should accept the lists:

[a]
[a,b]
[a,b,c]

And Reject
[a,[b|c]]

当我正确理解我的大学脚本时: enter image description here

代码应该用变量编写。和" listCheck / 1"

/**
Accept single value lists
*/
listCheck([A]).

/*
When there is a Head|Tail list check the Tail
*/
listCheck([Head|Tail]):-listCheck(Tail).

对于那些转向prolog编程的人来说,你知道什么是好的入门页吗?我从几年开始编程C#和Java,但对我来说,prolog似乎很奇怪。 : - )

1 个答案:

答案 0 :(得分:0)

所以今天我来到下面的代码,这段代码有效,但由于递归,它返回" true"," false"对于给定的列表" [a,[b | c]]"。当部分[b | c]失败时,有没有办法取消递归?

/**
Accept single value lists
*/
checkList([]).
checkList([E]).
checkList([Head|Tail]):-not(atom(Tail)), atom(Head),checkList(Tail).