|
Top Document: FAQ: Prolog Resource Guide 1/2 [Monthly posting] Previous Document: [1-13] What is Constraint Logic Programming? Next Document: [1-15] World-Wide Web (WWW) Resources See reader questions & answers on this topic! - Help others by sharing your knowledge
The de-facto standard syntax for Prolog is known as the Edinburgh
standard. It is based on the syntax of DEC-10 Prolog, an early Prolog
implementation developed at the University of Edinburgh.
See question [1-1] for information on the draft ISO standard for
Prolog.
Unfortunately, not every Prolog implementation is Edinburgh compatible.
There also isn't any notion of read-conditionalization, like #+ and #-
*features* in Common Lisp.
One option is to use the C preprocessor on Prolog code before loading
it into Prolog. Or you could use term-expansion to roll your own
conditional compilation system. Term expanding a clause to []
effectively discards it.
Another possibility is to conditionalize the execution instead of the
compilation. The user would have to uncomment a line like one of the
following,
% this_is(quintus).
% this_is(sicstus).
and the code would have to test for the proper literal
a :- this_is(quintus), blah, blah, blah.
a :- this_is(sicstus), blah, blah, blah.
at a slight cost in efficiency. (If you first feed the program through
a general partial evaluator, you'll get an equivalent program without
the inefficiency. Partial evaluation is in some sense a more powerful
and semantically cleaner form of source preprocessing. Given
<head> :- <condition>, <rest of body>.
If <condition> is always false, we can safely drop the clause. If
<condition> is always true, we can drop it from any clauses that
include it.)
Another possibility is Richard O'Keefe's environment package for
Prolog. It was posted to comp.lang.prolog on 1-SEP-94; a copy can be
found in
ftp://ftp.cs.cmu.edu/user/ai/lang/prolog/code/ext/env/
User Contributions:Comment about this article, ask questions, or add new information about this topic:Top Document: FAQ: Prolog Resource Guide 1/2 [Monthly posting] Previous Document: [1-13] What is Constraint Logic Programming? Next Document: [1-15] World-Wide Web (WWW) Resources Part1 - Part2 - Single Page [ Usenet FAQs | Web FAQs | Documents | RFC Index ] Send corrections/additions to the FAQ Maintainer: mkant+prg@cs.cmu.edu
Last Update March 27 2014 @ 02:12 PM
|

Howdy very cool website!! Man .. Excellent .. Amazing .. I'll bookmark your site and take the feeds additionally? I'm satisfied to seek out so many useful information here within the post, we need work out extra techniques in this regard, thank you for sharing. . . . . .
https://cutt.ly/2wzXdJpw
Best Regards
rroyucrt48849.wixsite.com/advertisingmoney