1 | (module testegg |
---|
2 | (make-foo |
---|
3 | make-bar) |
---|
4 | |
---|
5 | (import scheme) |
---|
6 | (import matchable) |
---|
7 | |
---|
8 | (define (make-foo cmene valsi) |
---|
9 | `(,cmene ,valsi)) |
---|
10 | |
---|
11 | (define (make-bar cmene nastura porjahe) |
---|
12 | (write `(,nastura ,porjahe)) |
---|
13 | (newline) |
---|
14 | (match `(,nastura ,porjahe) |
---|
15 | ((#t #t) (lambda (ignore-valsi) |
---|
16 | (lambda () `(,(make-foo cmene #f))))) |
---|
17 | ((#t #f) (lambda (ignore-valsi) |
---|
18 | (lambda () (make-foo cmene #f)))) |
---|
19 | ((#f #t) (lambda (valsi) |
---|
20 | (lambda () `(,(make-foo cmene valsi))))) |
---|
21 | ((#f #f) (lambda (valsi) |
---|
22 | (lambda () (make-foo cmene valsi)))))) |
---|
23 | |
---|
24 | (write (((make-bar "aisa" #f #f) "baz"))) |
---|
25 | (newline)) |
---|