From f8167e1cb76a16bdb5cda4d826f7c08029e12153 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Thu, 17 Mar 2016 12:38:32 -0700 Subject: [PATCH] dep --- br/datum.rkt | 27 ++++++++++++++++----------- info.rkt | 2 +- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/br/datum.rkt b/br/datum.rkt index e4930e9..192fd57 100644 --- a/br/datum.rkt +++ b/br/datum.rkt @@ -10,25 +10,30 @@ (car result) result))) -(define-syntax format-datum - (λ(stx) - (syntax-case stx (quote datum) - [(_ (quote ) ...) - #'(format-datum (datum ) ...)] - [(_ (datum datum-template) ...) - (syntax-let ([#'format-string (format "~a" (syntax->datum #'datum-template))]) - #'(string->datum (apply format format-string (map (λ(arg) (if (syntax? arg) - (syntax->datum arg) - arg)) (list ...)))))]))) +#;(define-syntax format-datum + (λ(stx) + (syntax-case stx (quote datum) + [(_ (quote ) ...) + #'(format-datum (datum ) ...)] + [(_ (datum datum-template) ...) + (syntax-let ([#'format-string (format "~a" (syntax->datum #'datum-template))]) + #'(string->datum (apply format format-string (map (λ(arg) (if (syntax? arg) + (syntax->datum arg) + arg)) (list ...)))))]))) +(define (format-datum datum-template . args) + (string->datum (apply format (format "~a" datum-template) (map (λ(arg) (if (syntax? arg) + (syntax->datum arg) + arg)) args)))) (module+ test - (require rackunit) + (require rackunit syntax/datum) (check-equal? (string->datum "foo") 'foo) (check-equal? (string->datum "(foo bar)") '(foo bar)) (check-equal? (string->datum "foo bar") '(foo bar)) (check-equal? (string->datum "42") 42) (check-equal? (format-datum '(~a-bar-~a) "foo" "zam") '(foo-bar-zam)) + (check-equal? (format-datum '(~a-bar-~a) #'foo #'zam) '(foo-bar-zam)) (check-equal? (format-datum (datum (~a-bar-~a)) "foo" "zam") '(foo-bar-zam)) (check-equal? (format-datum '~a "foo") 'foo) (check-equal? (format-datum (datum ~a) "foo") 'foo)) diff --git a/info.rkt b/info.rkt index e518c00..060d342 100644 --- a/info.rkt +++ b/info.rkt @@ -2,5 +2,5 @@ (define collection 'multi) (define version "0.01") -(define deps '("base")) +(define deps '("base" "sugar")) (define build-deps '("racket-doc"))