Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!uunet!seas.gwu.edu!kilian From: kilian@seas.gwu.edu (Jens Kilian) Newsgroups: comp.lang.prolog Subject: Re: '->' operator Message-ID: <2497@sparko.gwu.edu> Date: 4 Jan 91 14:47:02 GMT References: <291@valverde.cs.utexas.edu> <1991Jan4.030918.24996@athena.cs.uga.edu> <16491@cs.utexas.edu> <1991Jan4.061142.26941@athena.cs.uga.edu> Sender: news@seas.gwu.edu Reply-To: kilian@seas.gwu.edu (Jens Kilian) Organization: The George Washington University, Washington, D.C. Lines: 18 As far as I know, the '->' operator is implemented as a 'local cut'. Thus, P -> Q; R is equivalent to P, !, Q; R provided that the scope of the cut is limited to the disjunction. According to the Quintus manual, (P -> Q) is equivalent to (P -> Q; false), which explains why (P -> Q) fails if P fails. The only reason I can imagine is that (P -> Q; false) need not create a choice point, while (P -> Q; true) must create one. -- Internet: kilian@seas.gwu.edu SnailMail: 4715 MacArthur Blvd. (I don't know any other addresses ...) Washington, DC 20007 "Sie hawwe-mer so e bekannt Physionomie, ich mahn, ich misst Ihne kenne. Sinn-Se net, um Vergebung, der Herr Assesser Ranft ?"