From e88e9b164efd0c80df86526d8038cef2f3da0366 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Fri, 21 Jun 2019 08:19:04 -0700 Subject: [PATCH] refac solution --- .../tacopocalypse-demo/main.rkt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/beautiful-racket-demo/tacopocalypse-demo/main.rkt b/beautiful-racket-demo/tacopocalypse-demo/main.rkt index 784b835..524836f 100644 --- a/beautiful-racket-demo/tacopocalypse-demo/main.rkt +++ b/beautiful-racket-demo/tacopocalypse-demo/main.rkt @@ -1,5 +1,5 @@ #lang br/quicklang -(require brag/support racket/sequence) +(require brag/support) (module+ reader (provide read-syntax)) @@ -11,11 +11,12 @@ [any-char (lex input-port)])) (define (tokenize ip) - (define toklets - (for/list ([toklet (in-port lex ip)]) - toklet)) - (for/list ([tok (in-slice 7 toklets)]) - tok)) + (define toklets (for/list ([toklet (in-port lex ip)]) + toklet)) + (let loop ([toklets toklets][acc null]) + (if (null? toklets) + (reverse acc) + (loop (drop toklets 7) (cons (take toklets 7) acc))))) (define (parse src toks) (for/list ([tok (in-list toks)]) @@ -30,5 +31,10 @@ (define parse-tree (parse src toks)) (strip-context (with-syntax ([PT parse-tree]) - #'(module untaco racket - (display (list->string 'PT)))))) \ No newline at end of file + #'(module taco-mod tacopocalypse-demo + PT)))) + +(define-macro (mb PT) + #'(#%module-begin + (display (list->string 'PT)))) +(provide (rename-out [mb #%module-begin])) \ No newline at end of file