Warning: This is the manual of the legacy Guile 2.2 series. You may want to read the manual of the current stable series instead.
Next: Alist Example, Previous: Removing Alist Entries, Up: Association Lists [Contents][Index]
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.
Behaves like assq
but does not do any error checking.
Recommended only for use in Guile internals.
Behaves like assv
but does not do any error checking.
Recommended only for use in Guile internals.
Behaves like assoc
but does not do any error checking.
Recommended only for use in Guile internals.
Next: Alist Example, Previous: Removing Alist Entries, Up: Association Lists [Contents][Index]