home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!gatech!bloom-beacon!eru.mt.luth.se!lunic!sunic!sics.se!roland
- From: roland@sics.se (Roland Karlsson)
- Newsgroups: comp.lang.prolog
- Subject: Re: Compilation of Disjuncts
- Message-ID: <ROLAND.92Sep8085939@helicon.sics.se>
- Date: 8 Sep 92 07:59:39 GMT
- References: <1992Sep1.160505.6828@irisa.fr> <MATSC.92Sep2141625@vishnu.sics.se>
- <14395@goanna.cs.rmit.oz.au>
- Sender: news@sics.se
- Organization: Swedish Institute of Computer Science, Kista
- Lines: 24
- In-Reply-To: ok@goanna.cs.rmit.oz.au's message of 8 Sep 92 04:20:34 GMT
-
-
- SICStus Prolog do it this way:
-
- p :- (x,! ; y). q :- a, (b,! ; c).
- p :- z. q :- d.
-
- is converted to
-
- p :- choice(C), x, cut(C). q :- choice(C), a, q'(C).
- p :- y. q :- d.
- p :- z.
- q'(C) :- b, cut(C).
- q'(_) :- c.
-
- Where choice(C) binds C to a reference to the youngest choicepoint alive
- when calling q/0 or p/0, and cut(C) clears all choicepoints younger than C.
-
-
- o
- Ralle
- --
- Roland Karlsson SICS, PO Box 1263, S-164 28 KISTA, SWEDEN
- Internet: roland@sics.se Tel: +46 8 752 15 40 Fax: +46 8 751 72 30
- Telex: 812 6154 7011 SICS Ttx: 2401-812 6154 7011=SICS
-