[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
6.7.12.5 Sloppy Alist Functions
sloppy-assq
, sloppy-assv
and sloppy-assoc
behave
like the corresponding non-sloppy-
procedures, except that they
return #f
when the specified association list is not well-formed,
where the non-sloppy-
versions would signal an error.
Specifically, there are two conditions for which the non-sloppy-
procedures signal an error, which the sloppy-
procedures handle
instead by returning #f
. Firstly, if the specified alist as a
whole is not a proper list:
(assoc "mary" '((1 . 2) ("key" . "door") . "open sesame")) ⇒ ERROR: In procedure assoc in expression (assoc "mary" (quote #)): ERROR: Wrong type argument in position 2 (expecting association list): ((1 . 2) ("key" . "door") . "open sesame") (sloppy-assoc "mary" '((1 . 2) ("key" . "door") . "open sesame")) ⇒ #f
Secondly, if one of the entries in the specified alist is not a pair:
(assoc 2 '((1 . 1) 2 (3 . 9))) ⇒ ERROR: In procedure assoc in expression (assoc 2 (quote #)): ERROR: Wrong type argument in position 2 (expecting association list): ((1 . 1) 2 (3 . 9)) (sloppy-assoc 2 '((1 . 1) 2 (3 . 9))) ⇒ #f
Unless you are explicitly working with badly formed association lists,
it is much safer to use the non-sloppy-
procedures, because they
help to highlight coding and data errors that the sloppy-
versions would silently cover up.
- Scheme Procedure: sloppy-assq key alist
- C Function: scm_sloppy_assq (key, alist)
Behaves like
assq
but does not do any error checking. Recommended only for use in Guile internals.
- Scheme Procedure: sloppy-assv key alist
- C Function: scm_sloppy_assv (key, alist)
Behaves like
assv
but does not do any error checking. Recommended only for use in Guile internals.
- Scheme Procedure: sloppy-assoc key alist
- C Function: scm_sloppy_assoc (key, alist)
Behaves like
assoc
but does not do any error checking. Recommended only for use in Guile internals.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on April 20, 2013 using texi2html 5.0.