Next: Packages, Previous: Conditions, Up: Standards [Contents][Index]
There are no implementation-specific limits on the size or content of symbol names. It is however not allowed to write on the strings which have been passed to #'make-symbol or returned from #'symbol-name.
Find a lisp keyword
Description
Many Lisp functions take keyword arguments. When invoking a function with keyword arguments we need keywords, which are a kind of symbols that live in the keyword package. This function does the task of finding or creating those keywords from C strings.
ecl_make_keyword("TO") with return :TO, while ecl_make_keyword("to") returns a completely different keyword, :|to|. In short, you usually want to use uppercase.
Example
The following example converts a section of a string to uppercase characters:
cl_object start = ecl_make_keyword("START");
cl_object end = ecl_make_keyword("END");
...
sup = cl_string_upcase(4, s, start, ecl_make_fixnum(2),
end, ecl_make_fixnum(6));
Find a lisp symbol
Description
This function finds or create a symbol in the given package. First of all, it tries to find the package named by package_name. If it does not exist, an error is signaled. Then, a symbol with the supplied name is created and interned in the given package.
Common Lisp and C equivalence
| Lisp symbol | C function |
|---|---|
| boundp | cl_object cl_boundp(cl_object symbolp) |
| copy-symbol | cl_object cl_copy_symbol(cl_narg narg, cl_object symbol, ...) |
| get | cl_object cl_get(cl_narg narg, cl_object sym, cl_object indicator, ...) |
| gensym | cl_object cl_gensym(cl_narg narg, ...) |
| gentemp | cl_object cl_gentemp(cl_narg narg, ...) |
| keywordp | cl_object cl_keywordp(cl_object object) |
| make-symbol | cl_object cl_make_symbol(cl_object name) |
| makunbound | cl_object cl_makunbound(cl_object makunbound) |
| remprop | cl_object cl_remprop(cl_object symbol, cl_object indicator) |
| set | cl_object cl_set(cl_object symbol, cl_object value) |
| symbolp | cl_object cl_symbolp(cl_object object) |
| symbol-function | cl_object cl_symbol_function(cl_object symbol) |
| (setf symbol-function) | cl_object si_fset(cl_narg narg, cl_object function_name, cl_object definition, ...) |
| symbol-name | cl_object cl_symbol_name(cl_object symbol) |
| symbol-package | cl_object cl_symbol_package(cl_object symbol) |
| symbol-plist | cl_object cl_symbol_plist(cl_object symbol) |
| (setf symbol-plist) | cl_object si_set_symbol_plist(cl_object symbol, cl_object plist) |
| symbol-value | cl_object cl_symbol_value(cl_object symbol) |
Next: Packages, Previous: Conditions, Up: Standards [Contents][Index]