From sota@midway.uchicago.edu Sun Jul 15 03:14:04 2001
Received: from midway.uchicago.edu (midway.uchicago.edu [128.135.12.12])
	by swi.psy.uva.nl (8.11.2/8.11.2) with ESMTP id f6F1E4X20941
	for <prolog@swi.psy.uva.nl>; Sun, 15 Jul 2001 03:14:04 +0200 (MET DST)
Received: from localhost (hal-9000.uchicago.edu [128.135.150.129])
	by midway.uchicago.edu (8.11.3/8.11.3) with ESMTP id f6F1E2n23573
	for <prolog@swi.psy.uva.nl>; Sat, 14 Jul 2001 20:14:03 -0500 (CDT)
To: prolog@swi.psy.uva.nl
X-Mailer: Mew version 1.94.2 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20010714200815Q.sota@midway.uchicago.edu>
Date: Sat, 14 Jul 2001 20:08:15 -0700
From: Satoshi Ota (OOta) <sota@midway.uchicago.edu>
X-Dispatcher: imput version 991025(IM133)
Lines: 40
Subject: [SWIPL] arithmetic_function

Hi

Because of a specific purpose, I need to write an arithmetic function
like:

:- arithmetic_function(sum/3).	

sum(X0, X, K, S) :-
	sum(X0, X, K, 0, S).

sum(X, X, _, S, S) :- !.
sum(X0, X, K, S0, S) :-
	S1 is S0 + 1,
	X1 is X0 + 1,
	sum(X1, X, K, S1, S).

It is obvious that it works if we give something like:

14 ?- A is sum(0, 4, 0).

A = 4 ;

However, what I want to do is as follows:

?- A is sum(0, 4, k).

It does not work because:

ERROR: Arithmetic: `k/0' is not a function

Does anybody know why it did not work?

Thanks,

---
Satoshi




