syndicate-2017/racket/typed/examples/with-facets.rkt

23 lines
464 B
Racket
Raw Normal View History

2022-07-15 20:31:17 +00:00
#lang typed/syndicate
2022-07-18 20:13:45 +00:00
(define (wf1)
2022-07-15 20:31:17 +00:00
(spawn
(with-facets
2022-07-18 20:13:45 +00:00
([onn (facet (assert (tuple 'on))
(on start (printf "on\n")))]
2022-07-15 20:31:17 +00:00
[off (facet (on (asserted (tuple 'go))
(stop off
2022-07-18 20:13:45 +00:00
(start onn)))
(on start (printf "off\n")))])
2022-07-15 20:31:17 +00:00
off)))
2022-07-18 20:13:45 +00:00
(run-ground-dataspace
(wf1)
(spawn (start-facet _ (assert (tuple 'go)))))
2022-07-15 20:31:17 +00:00
;; BAD
#;(spawn
(with-facets
[on (facet (on start (start on)))]
on))