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?]>> |