summaryrefslogtreecommitdiff
path: root/prolog/standard
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/standard')
-rw-r--r--prolog/standard35
1 files changed, 35 insertions, 0 deletions
diff --git a/prolog/standard b/prolog/standard
new file mode 100644
index 0000000..bc983ca
--- /dev/null
+++ b/prolog/standard
@@ -0,0 +1,35 @@
+abolish (X) :- elan (abolish, X).
+append ([], X, X) :- !.
+append ([X|Y], Z, [X|W]) :- append (Y, Z, W).
+atom (X) :- functor (X, Y, 0).
+atomic (X) :- atom (X); integer (X).
+consult (X) :- elan (consult, X).
+end :- bye.
+fail :- [].
+findall (X, Y, Z) :- tell ("$$"), write ("[ "), findall (X,Y);
+ write (" ]"), told, see ("$$"), read (Z),
+ seen, elan (forget, "$$").
+findall (X, Y) :- call (Y), writeq (X), write (","), [].
+integer (X) :- functor (X, Y, -1).
+listing (X).
+member (X, [X|Z]).
+member (X, [Y|Z]) :- member (X, Z).
+nl :- elan (line).
+non var (X) :- var (X), !, []; .
+not (X) :- call (X), !, []; .
+notrace :- elan (trace, off).
+reconsult (X) :- elan (reconsult, X).
+repeat.
+repeat :- repeat.
+see (X) :- elan (sysin, X).
+seen :- elan (sysin, "").
+tab (X) :- tab(X,1).
+tab (X,Y) :- Y<=X, !, put (32), incr(Y), tab(X,Y);.
+tell (X) :- elan (sysout, X).
+told :- elan (sysout, "").
+trace :- elan (trace, on).
+true.
+< (X, Y) :- <= (X, Y), <> (X, Y).
+> (X, Y) :- <= (Y, X).
+>= (X, Y) :- < (Y, X).
+