| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
A keyword is a sort of a special symbol that is automatically quoted. It is extensively used in pass-by-name arguments (keyword arguments), and keyword-value list. Unlike CommonLisp, keywords and symbols are distinct types.
See also let-keywords macro (Optional argument parsing)
for keyword argument processing.
:name
Read to a keyword whose name is name. (Note that the preceding ':' is not a part of the keyword's name.)
Returns #t if obj is a keyword.
Returns a keyword whose name is name, which can be can be a string or a symbol.
(make-keyword "foo") ⇒ :foo (make-keyword 'foo) ⇒ :foo |
Returns the name of the keyword keyword, in a string.
(keyword->string :foo) ⇒ "foo" |
A useful procedure to extract a value from key-value list. A key-value list kv-list must contains even number of elements; the first, third, fifth … elements are regarded as keys, and the second, fourth, sixth … elements are the values of the preceding keys.
This procedure looks for key from the keys, and if it finds one, it returns the corresponding value. If there are more than one matching keys, the leftmost one is taken. If there is no matching key, it returns fallback if provided, or signals an error otherwise.
It is an error if kv-list is not a proper, even-number element list.
Actually, `keywords' in the keyword-value list and the key argument
need not be a keyword—it can be any Scheme object. Key comparison
is done by eq?.
This procedure is taken from STk.
(get-keyword :y '(:x 1 :y 2 :z 3)) ⇒ 2 (get-keyword 'z '(x 1 y 2 z 3)) ⇒ 3 (get-keyword :t '(:x 1 :y 2 :z 3)) ⇒ #<error> (get-keyword :t '(:x 1 :y 2 :z 3) #f) ⇒ #f |
Like get-keyword, but fallback is evaluated only
if kv-list does not have key.
Removes all the keys and values from kv-list for
keys that are eq? to key.
delete-keyword doesn't change kv-list, but the returned
list may share the common tail of it.
delete-keyword! doesn't allocate, and may destructively
changes kv-list. You still have to use the returned value,
for the original list may not be changed if its first key matches
key.
If there's no key that matches key, kv-list is returned.
(delete-keyword :y '(:x 1 :y 2 :z 3 :y 4)) ⇒ (:x 1 :z 3) |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Shiro Kawai on October, 7 2008 using texi2html 1.78.