Next Previous Contents

15. Eval Functions

15.1 autoload

Synopsis

Load a function from a file

Usage

autoload (String_Type funct, String_Type file)

Description

The autoload function is used to declare funct to the interpreter and indicate that it should be loaded from file when it is actually used.

Example

Suppose bessel_j0 is a function defined in the file bessel.sl. Then the statement

      autoload ("bessel_j0", "bessel.sl");
will cause bessel.sl to be loaded prior to the execution of bessel_j0

See Also

evalfile

15.2 byte_compile_file

Synopsis

Compile a file to byte-code for faster loading.

Usage

byte_compile_file (String_Type file, Integer_Type method)

Description

The byte_compile_file function byte-compiles file producing a new file with the same name except a 'c' is added to the output file name. For example, file is "site.sl", then the function produces a new file named site.slc.

Notes

The method parameter is not used in the current implementation. Its use is reserved for the future. For now, set it to 0.

See Also

evalfile

15.3 eval

Synopsis

Interpret a string as S-lang code

Usage

eval (String_Type expression, [,String_Type namespace])

Description

The eval function parses a string as S-Lang code and executes the result. If called with the optional namespace argument, then the string will be evaluated in the specified namespace.

This is a useful function in many contexts such as dynamically generating function definitions where there is no way to generate them otherwise.

Example

    if (0 == is_defined ("my_function"))
      eval ("define my_function () { message (\"my_function\"); }");

See Also

is_defined, autoload, evalfile

15.4 evalfile

Synopsis

Interpret a file containing S-lang code.

Usage

Integer_Type evalfile (String_Type file, [,String_Type namespace])

Description

The evalfile function loads file into the interpreter and executes it. If called with the optional namespace argument, the file will be loaded into the specified namespace, which will be created if necessary. If no errors were encountered, 1 will be returned; otherwise, a S-lang error will be generated and the function will return zero.

Example

    define load_file (file)
    {
       ERROR_BLOCK { _clear_error (); }
       () = evalfile (file);
    }

Notes

For historical reasons, the return value of this function is not really useful.

See Also

eval, autoload


Next Previous Contents