|
SketchyLISP Reference |
Copyright (C) 2007 Nils M Holm |
| <<[caar] | [Index] | [char-alphabetic?]>> |
Conformance: R5RS Scheme
Purpose: Select cases.
Arguments:
KEY - key used to select a case
DATA - possible matches for this case
EXPR - value for this case
Implementation:
(define-syntax case
(syntax-rules (else)
((_ key (else expr))
expr)
((_ key (data expr))
(if (memv key 'data)
expr
(bottom '(no default in case))))
((_ key (data1 expr1) (data2 expr2) ...)
(if (memv key 'data1)
expr1
(case key (data2 expr2) ...)))))
Example:
; Example needs pre-loaded image (case 'c ((a b) 'a-or-b) ((c d) 'c-or-d)) --> c-or-d
See also:
if.
| <<[caar] | [Index] | [char-alphabetic?]>> |