嘿伙计我昨天开始开发Prolog我需要一些帮助,对于我的大学,我应该创建一个列表检查功能。
It should accept the lists:
[a]
[a,b]
[a,b,c]
And Reject
[a,[b|c]]
代码应该用变量编写。和" 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似乎很奇怪。 : - )
答案 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).