| % If you have 1.4.3 or older Prolog-Cafe, you need to |
| % use (consult(load), load(load)) to get definition of load. |
| % Then use load([f1,f2,...]) to load multiple source files. |
| |
| % Input is a list of file names or a single file name. |
| % Use a conditional expression style without cut operator. |
| load(X) :- |
| ( (X = []) |
| -> true |
| ; ( (X = [H|T]) |
| -> (load_file(H), load(T)) |
| ; load_file(X) |
| ) |
| ). |
| |
| % load_file is '$consult' without the bug of unbound 'File' variable. |
| % For repeated unit tests, skip statistics and print_message. |
| load_file(F) :- atom(F), !, |
| '$prolog_file_name'(F, PF), |
| open(PF, read, In), |
| % print_message(info, [loading,PF,'...']), |
| % statistics(runtime, _), |
| consult_stream(PF, In), |
| % statistics(runtime, [_,T]), |
| % print_message(info, [PF,'loaded in',T,msec]), |
| close(In). |