From 380f4a2d376d95f4f3a8b114bad1bdc6a4829c3a Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Sat, 7 Jul 2018 17:36:02 -0700 Subject: [PATCH] nits --- .../taco-compiler-demo/main.rkt | 19 +++++++-------- .../taco-decompiler-demo/main.rkt | 15 ++++++------ .../taco-decompiler-demo/run.rkt | 15 ++++++------ .../taco-victory-demo/main.rkt | 21 +++++++++-------- beautiful-racket-demo/tacogram-demo/main.rkt | 23 +++++++++++-------- .../tacopocalypse-demo/main.rkt | 15 ++++++------ 6 files changed, 59 insertions(+), 49 deletions(-) diff --git a/beautiful-racket-demo/taco-compiler-demo/main.rkt b/beautiful-racket-demo/taco-compiler-demo/main.rkt index b39d453..3cf8504 100644 --- a/beautiful-racket-demo/taco-compiler-demo/main.rkt +++ b/beautiful-racket-demo/taco-compiler-demo/main.rkt @@ -7,17 +7,18 @@ (for/list ([tok (in-port read-char ip)]) tok)) -(define (parse-char c) - (define int (modulo (char->integer c) 128)) - (for/list ([bit (in-range 7)]) - (if (bitwise-bit-set? int bit) - 'taco - null))) +(define (parse toks) + (for/list ([tok (in-list toks)]) + (define int (modulo (char->integer tok) 128)) + (for/list ([bit (in-range 7)]) + (if (bitwise-bit-set? int bit) + 'taco + null)))) (define (read-syntax src ip) (define toks (tokenize ip)) - (define parse-tree (map parse-char toks)) + (define parse-tree (parse toks)) (strip-context - (with-syntax ([(PARSED-CHAR ...) parse-tree]) + (with-syntax ([PT parse-tree]) #'(module tacofied racket - (for-each displayln '(PARSED-CHAR ...)))))) \ No newline at end of file + (for-each displayln 'PT))))) \ No newline at end of file diff --git a/beautiful-racket-demo/taco-decompiler-demo/main.rkt b/beautiful-racket-demo/taco-decompiler-demo/main.rkt index a126925..6d91221 100644 --- a/beautiful-racket-demo/taco-decompiler-demo/main.rkt +++ b/beautiful-racket-demo/taco-decompiler-demo/main.rkt @@ -7,16 +7,17 @@ (for/list ([tok (in-port read ip)]) tok)) -(define (parse tok) - (integer->char - (for/sum ([val (in-list tok)] - [power (in-naturals)] - #:when (eq? val 'taco)) - (expt 2 power)))) +(define (parse toks) + (for/list ([tok (in-list toks)]) + (integer->char + (for/sum ([val (in-list tok)] + [power (in-naturals)] + #:when (eq? val 'taco)) + (expt 2 power))))) (define (read-syntax src ip) (define toks (tokenize ip)) - (define parse-tree (map parse toks)) + (define parse-tree (parse toks)) (strip-context (with-syntax ([PT parse-tree]) #'(module untaco racket diff --git a/beautiful-racket-demo/taco-decompiler-demo/run.rkt b/beautiful-racket-demo/taco-decompiler-demo/run.rkt index 872ec93..c2e30e3 100644 --- a/beautiful-racket-demo/taco-decompiler-demo/run.rkt +++ b/beautiful-racket-demo/taco-decompiler-demo/run.rkt @@ -7,16 +7,17 @@ (for/list ([tok (in-port read ip)]) tok)) -(define (parse tok) - (integer->char - (for/sum ([val (in-list tok)] - [power (in-naturals)] - #:when (eq? val 'taco)) - (expt 2 power)))) +(define (parse toks) + (for/list ([tok (in-list toks)]) + (integer->char + (for/sum ([val (in-list tok)] + [power (in-naturals)] + #:when (eq? val 'taco)) + (expt 2 power))))) (define (read-syntax src ip) (define toks (tokenize ip)) - (define parse-tree (map parse toks)) + (define parse-tree (parse toks)) (define src-string (list->string parse-tree)) (define racket-toks (for/list ([tok (in-port read (open-input-string src-string))]) diff --git a/beautiful-racket-demo/taco-victory-demo/main.rkt b/beautiful-racket-demo/taco-victory-demo/main.rkt index 8b2b605..6d2e6d7 100644 --- a/beautiful-racket-demo/taco-victory-demo/main.rkt +++ b/beautiful-racket-demo/taco-victory-demo/main.rkt @@ -5,27 +5,30 @@ (module+ reader (provide read-syntax)) -(define lex - (lexer - ["#$" lexeme] - ["%" lexeme] - [any-char (lex input-port)])) +(define (tokenize ip) + (define lex + (lexer + ["#$" lexeme] + ["%" lexeme] + [any-char (lex input-port)])) + (lex ip)) (define (taco-program . pieces) pieces) (define (taco-leaf . pieces) (integer->char - (for/sum ([bit (in-list pieces)] + (for/sum ([taco-or-not (in-list pieces)] [pow (in-naturals)]) - (* bit (expt 2 pow))))) + (* taco-or-not (expt 2 pow))))) (define (taco) 1) (define (not-a-taco) 0) (define (read-syntax src ip) - (define parse-tree (parse (λ () (lex ip)))) + (define token-thunk (λ () (tokenize ip))) + (define parse-tree (parse token-thunk)) (strip-context (with-syntax ([PT parse-tree]) - #'(module vic taco-victory-demo + #'(module winner taco-victory-demo (display (apply string PT)))))) \ No newline at end of file diff --git a/beautiful-racket-demo/tacogram-demo/main.rkt b/beautiful-racket-demo/tacogram-demo/main.rkt index aa46241..ca9e0fb 100644 --- a/beautiful-racket-demo/tacogram-demo/main.rkt +++ b/beautiful-racket-demo/tacogram-demo/main.rkt @@ -8,17 +8,20 @@ (for/list ([tok (in-port read-char ip)]) tok)) -(define (leaf->char taco-leaf) - (integer->char - (for/sum ([val (in-list (cdr taco-leaf))] - [power (in-naturals)] - #:when (equal? val '(taco))) - (expt 2 power)))) +(define (parse toks) + (define parse-tree-datum (parse-to-datum toks)) + (for/list ([leaf (in-list (cdr parse-tree-datum))]) + (integer->char + (for/sum ([val (in-list (cdr leaf))] + [power (in-naturals)] + #:when (equal? val '(taco))) + (expt 2 power))))) + (define (read-syntax src ip) - (define parse-tree (parse-to-datum (tokenize ip))) - (define taco-branches (cdr parse-tree)) + (define toks (tokenize ip)) + (define parse-tree (parse toks)) (strip-context - (with-syntax ([CHARS (map leaf->char taco-branches)]) + (with-syntax ([PT parse-tree]) #'(module untaco racket - (display (list->string 'CHARS)))))) \ No newline at end of file + (display (list->string 'PT)))))) \ No newline at end of file diff --git a/beautiful-racket-demo/tacopocalypse-demo/main.rkt b/beautiful-racket-demo/tacopocalypse-demo/main.rkt index fa20bfd..0be75fe 100644 --- a/beautiful-racket-demo/tacopocalypse-demo/main.rkt +++ b/beautiful-racket-demo/tacopocalypse-demo/main.rkt @@ -17,16 +17,17 @@ (for/list ([tok (in-slice 7 toklets)]) tok)) -(define (parse taco-rec-tok) - (integer->char - (for/sum ([val (in-list taco-rec-tok)] - [power (in-naturals)] - #:when (eq? val 'taco)) - (expt 2 power)))) +(define (parse toks) + (for/list ([tok (in-list toks)]) + (integer->char + (for/sum ([val (in-list tok)] + [power (in-naturals)] + #:when (eq? val 'taco)) + (expt 2 power))))) (define (read-syntax src ip) (define toks (tokenize ip)) - (define parse-tree (map parse toks)) + (define parse-tree (parse toks)) (strip-context (with-syntax ([PT parse-tree]) #'(module untaco racket