Constructing ECLiPSe terms in C

## C.1 Constructing ECLiPSe terms in C

All these functions return (volatile) pwords, which can be used as input to other constructor functions, or which can be stored in (non-volatile) ec_refs.

pword ec_string(const char*)
  converts a C string to an ECLiPSe string. The string is copied.
pword ec_length_string(int, const char*)
  converts a C string of given length to an ECLiPSe string. The string is copied and can contain NUL bytes.
pword ec_atom(const dident)
  creates an ECLiPSe atom. A dident (dictionary identifier) can be obtained either via ec_did() or ec_get_atom().
pword ec_long(const long)
  converts a C long to an ECLiPSe integer.
pword ec_long_long(const long long)
  converts a C long long to an ECLiPSe integer.
pword ec_double(const double)
  converts a C double to an ECLiPSe float.
pword ec_term(dident,pword,pword,...)
  creates an ECLiPSe term from the given components.
pword ec_term_array(const dident,const pword[ ])
  creates an ECLiPSe term from the arguments given in the array.
pword ec_list(const pword,const pword)
  creates a single ECLiPSe list cell with the given head (car) and tail (cdr).
pword ec_listofrefs(ec_refs)
  creates an ECLiPSe list containing the elements of the ec_refs array.
pword ec_listoflong(int, const long*)
  creates an ECLiPSe list of integers containing the longs in the given array. The data is copied.
pword ec_listofchar(int, const char*)
  creates an ECLiPSe list of integers containing the chars in the given array. The data is copied.
pword ec_listofdouble(int, const double*)
  creates an ECLiPSe list of doubles containing the doubles in the given array. The data is copied.
pword ec_arrayofdouble(int, const double*)
  creates an ECLiPSe array (a structure with functor [ ]of appropriate arity) of doubles from the given C array. The data is copied.
pword ec_matrixofdouble(int rows, int cols, const double*)
  creates an ECLiPSe array (size rows) of arrays (size cols) of doubles from the given C array. The data is copied.
pword ec_handle(const t_ext_type*,const t_ext_ptr)
  creates an ECLiPSe handle that refers to the given C data and its method table.
pword ec_newvar()
  creates a fresh ECLiPSe variable.
pword ec_nil()
  creates an ECLiPSe nil ie. the empty list [ ].

Auxiliary functions to access the ECLiPSe dictionary.

dident ec_did(char*,int)
  looks up or enters the given string with arity into the ECLiPSe dictionary and returns a unique identifier for it.
char* DidName(dident)
  returns the name string of the given dictionary identifier.
int DidArity(dident)
  returns the arity of the given dictionary identifier.