🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.prolog
Article #4193

Re: Definition of list_length/2

#4193
From: Andreas Stolcke
Date: Wed, 14 Feb 1990 19:13
32 lines
1313 bytes
In article <3179@munnari.oz.au>, lee@munnari.oz.au (Lee Naish) writes:
> 
> list_length_non(Xs, N) :-
> 	list_length_non_ac(Xs, 0, N).
> 
> list_length_non_ac([], N, N).
> list_length_non_ac([_|Xs], N0, N) :-
> 	N1 is N0 + 1,
> 	list_length_non_ac(Xs, N1, N).
>

To avoid endless recursion after the first (and only) solution to
length( -L, +N), while still allowing unrestricted backtracking for
length( -L, -N):

length(Xs, N) :-
	length(Xs, 0, N).

length([], N, N).
length([_|Xs], N0, N) :-
	(
		var( N ), !
	;
		N0 < N
	),
	N1 is N0 + 1,
	length(Xs, N1, N).

----
Andreas Stolcke
International Computer Science Institute	stolcke@icsi.Berkeley.EDU
1957 Center St., Suite 600, Berkeley, CA 94704	(415) 642-4274 ext. 126
Technical Details
Message-ID: <22095@pasteur.Berkeley.EDU>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!tmsoft!torsqnt!jarvis.csri.toronto.edu!cs.utexas.edu!usc!ucsd!helios.ee.lbl.gov!pasteur!icsi.Berkeley.EDU!stolcke
References: <3179@munnari.oz.au> <2733@swi.swi.psy.uva.nl>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!tmsoft!torsqnt!jarvis.csri.toronto.edu!cs.utexas.edu!usc!ucsd!helios.ee.lbl.gov!pasteur!icsi.Berkeley.EDU!stolcke
From: stolcke@icsi.Berkeley.EDU (Andreas Stolcke)
Newsgroups: comp.lang.prolog
Subject: Re: Definition of list_length/2
Message-ID: <22095@pasteur.Berkeley.EDU>
Date: 14 Feb 90 19:13:42 GMT
References: <3179@munnari.oz.au> <2733@swi.swi.psy.uva.nl>
Sender: news@pasteur.Berkeley.EDU
Reply-To: stolcke@icsi.Berkeley.EDU (Andreas Stolcke)
Organization: International Computer Science Institute, Berkeley
Lines: 32