ADDED: library(os), reasoning about environment variables.

Together with library(files), this addresses #511.
This commit is contained in:
Markus Triska
2020-07-11 18:41:18 +02:00
parent 5fd78320dd
commit eb872f8fca
5 changed files with 99 additions and 0 deletions

View File

@@ -44,6 +44,7 @@ must_be_(var, Term) :-
).
must_be_(integer, Term) :- check_(integer, integer, Term).
must_be_(atom, Term) :- check_(atom, atom, Term).
must_be_(character, T) :- check_(character, character, T).
must_be_(list, Term) :- check_(ilist, list, Term).
must_be_(type, Term) :- check_(type, type, Term).
must_be_(boolean, Term) :- check_(boolean, boolean, Term).
@@ -56,6 +57,10 @@ check_(Pred, Type, Term) :-
boolean(B) :- ( B == true ; B == false ).
character(C) :-
atom(C),
atom_length(C, 1).
ilist(V) :- var(V), instantiation_error(must_be/2).
ilist([]).
ilist([_|Ls]) :- ilist(Ls).
@@ -63,6 +68,7 @@ ilist([_|Ls]) :- ilist(Ls).
type(type).
type(integer).
type(atom).
type(character).
type(list).
type(var).
type(boolean).
@@ -90,6 +96,7 @@ can_be(Type, Term) :-
can_(integer, Term) :- integer(Term).
can_(atom, Term) :- atom(Term).
can_(character, T) :- character(T).
can_(list, Term) :- list_or_partial_list(Term).
can_(boolean, Term) :- boolean(Term).