Next Previous Contents

2. The require Function

The functions in require.sl facilitate the loading of S-Lang code.

2.1 _featurep

Synopsis

Test whether or not a feature is present

Usage

Int_Type _featurep (String_Type feature [,String_Type namespace])

Description

The _featurep function returns a non-zero value if the specified feature is present. Otherwise, it returns 0 to indicate that the feature has not been loaded.

See Also

require, provide

2.2 provide

Synopsis

Declare that a specified feature is available

Usage

provide (String_Type feature [,String_Type namespace])

Description

The provide function may be used to declare that a "feature" has been loaded into the specified namespace. If the namespace argument is not present, the current namespace will be used. See the documentation for require for more information.

See Also

require, _featurep

2.3 require

Synopsis

Make sure a feature is present, and load it if not

Usage

require (feature [,namespace [,file]])

   String_Type feature, namespace, file;

Description

The require function ensures that a specified "feature" is present. If the feature is not present, the require function will attempt to load the feature from a file. If the namespace argument is present and non-NULL, the specified namespace will be used. The default is to use the current non-anonymous namespace. If called with three arguments, the feature will be loaded from the file specified by the third argument if it does not already exist in the namespace. Otherwise, the feature will be loaded from a file given by the name of the feature, with ".sl" appended.

If after loading the file, if the feature is not present, a warning message will be issued.

Example

    require ("histogram");
    require ("histogram", "foo");
    require ("histogram", "foo", "/home/bob/hist.sl");
    require ("histogram", ,"/home/bob/hist.sl");

Notes

"feature" is an abstract quantity that is undefined here.

A popular use of the require function is to ensure that a specified file has already been loaded. In this case, the feature is the filename itself. The advantage of using this mechanism over using evalfile is that if the file has already been loaded, require will not re-load it.

See Also

provide, _featurep, evalfile


Next Previous Contents