From d0f83eb24ab904944b8e7976e98c9189ee1eb779 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Fri, 3 Feb 2017 11:15:50 -0800 Subject: [PATCH] add `push!` and `pop!` --- beautiful-racket-lib/br/list.rkt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/beautiful-racket-lib/br/list.rkt b/beautiful-racket-lib/br/list.rkt index 2e97c8b..1ac1fd0 100644 --- a/beautiful-racket-lib/br/list.rkt +++ b/beautiful-racket-lib/br/list.rkt @@ -4,3 +4,11 @@ (define-macro (values->list EXPR) #'(call-with-values (λ () EXPR) list)) + +(define-macro (push! ID VAL) + #'(set! ID (cons VAL ID))) + +(define-macro (pop! ID) + #'(let ([x (car ID)]) + (set! ID (cdr ID)) + x)) \ No newline at end of file