Skip to content

Instantly share code, notes, and snippets.

@ashiato45
Created February 5, 2024 14:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ashiato45/4544ad27f1fa53643441ab9f75c60f8c to your computer and use it in GitHub Desktop.
Save ashiato45/4544ad27f1fa53643441ab9f75c60f8c to your computer and use it in GitHub Desktop.
#lang racket
(require racket/control)
; ((reset (shift k (lambda (state) 2))) 0)
(define (tick _) (shift k (lambda (state) ((k '()) (+ state 1)))))
(define (get _) (shift k (lambda (state) ((k state) state))))
(define (run_state thunk)
((reset (let ((result (thunk '())))
(lambda (state) result))) 0))
(run_state tick)
(run_state get)
(run_state (lambda (_)
(tick '())
(get '())
))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment