summaryrefslogtreecommitdiff
path: root/test-suite/vm/t-match.scm
blob: 2032fbe179d3c59a98685a75836e05a88a39b2f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
;;; Pattern matching with `(ice-9 match)'.
;;;

(use-modules (ice-9 match)
             (srfi srfi-9))  ;; record type (FIXME: See `t-records.scm')

(define-record-type <stuff>
  (%make-stuff chbouib)
  stuff?
  (chbouib stuff:chbouib stuff:set-chbouib!))

(define (matches? obj)
;  (format #t "matches? ~a~%" obj)
  (match obj
	 (($ <stuff>) #t)
;	 (blurps    #t)
	 ("hello"   #t)
	 (else #f)))


;(format #t "go!~%")
(and (matches? (%make-stuff 12))
     (matches? (%make-stuff 7))
     (matches? "hello")
;     (matches? 'blurps)
     (not (matches? 66)))