Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!att!bu.edu!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!mcsun!cernvax!chx400!unizh!fuchs From: fuchs@ifi.unizh.ch Newsgroups: comp.lang.prolog Subject: Re: Prolog utility library Keywords: library Message-ID: <1990Nov23.131637.25682@ifi.unizh.ch> Date: 23 Nov 90 13:16:37 GMT References: <1990Nov16.163342.1076@watdragon.waterloo.edu> <4357@goanna.cs.rmit.oz.au> Reply-To: fuchs@ifi.unizh.ch Organization: University of Zurich, Department of Computer Science Lines: 55 > ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) writes: > > What *is* the NBS/ICST Prolog utility library? > > What's in it? > > Where do you get it? I believe the following library is meant. It was published years ago in the former Prolog Digest. Let me know if you want more than the header. --- nef %% NBS/ICST Prolog Utility Library %% version date: Nov. 25, 1986 %% %% developed by: %% %% John Cugini %% Institute for Computer Sciences and Technology %% National Bureau of Standards %% %% Product of US Government: not subject to copyright %% %% This file contains various utility predicates, some commonly used, %% some not. They deal with lists, structures, I/O, sets, numeric %% facilities, and some extensions of logic and control. This library %% is written in and for the C-Prolog dialect of Prolog. %% %% Many of these predicates expect certain of their arguments to be %% instantiated upon invocation. When such restrictions apply it is %% usually the leading arguments which are thought of as input (and %% hence instantiated), and the trailing arguments as output (and hence %% allowed to be uninstantiated). %% %% There is a coding convention: the user-callable version of the %% predicate has a plain name. If this predicate needs sub-predicates, %% based on whether certain arguments are instantiated or not, the names %% of the sub-predicates are formed by appending a string of c,v, or %% x's, where c indicates argument must be constant (instantiated), v %% that it must be a variable, and x that it may be either. %% %% Further, each main predicate is preceded by documentation lines, %% which describe the declarative meaning of the predicate, and which %% arguments must be instantiated. %% %% The overall organization of the library is: %% %% Basic predicates %% Lists %% Structures %% Input/Output %% Sets %% Numeric %% Control %% Extended Logic %%