forked from pycket/pycket
-
Notifications
You must be signed in to change notification settings - Fork 0
/
linklet-option-example.rkt
50 lines (42 loc) · 1.02 KB
/
linklet-option-example.rkt
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
(module linklet-exp racket/base
;; #lang wouldn't work, use (module ...
(require racket/linklet)
(define l-0
(compile-linklet
(datum->correlated
'(linklet
()
(x)
(define-values (x) 3)
))))
;; use (list) for empty list
(define inst-0 (instantiate-linklet l-0 (list)))
(define l-1
(compile-linklet
(datum->correlated
'(linklet
((x))
(sam)
(define-values (sam) (lambda (p) x))
#;(lambda (x y) t)))))
(define inst-1 (instantiate-linklet l-1 (list inst-0)))
(define l-2
(compile-linklet
(datum->correlated
'(linklet
((x) (sam))
()
#;(define-values (a) 103)
(+ x (sam -1))
))))
(define target-linkl
(compile-linklet
(datum->correlated
'(linklet
()
()
#;(define-values (k) 1000)
#;(define-values (a) 10)))))
(define target (instantiate-linklet target-linkl (list)))
(instantiate-linklet l-2 (list inst-0 inst-1) target)
)