% 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).