bytecount->string, when/splice

pull/2/head
Matthew Butterick 10 years ago
parent 7b7e7776f2
commit e62f288f90

@ -1,9 +1,13 @@
#lang racket/base #lang racket/base
(require (for-syntax racket/base))
(require racket/contract) (require racket/contract)
(provide (contract-out
[bytecount->string (integer? . -> . string?)])
when/splice)
;; convert a bytecount into a string ;; convert a bytecount into a string
(define/contract (bytecount->string bytecount) (define (bytecount->string bytecount)
(integer? . -> . string?)
(define (format-with-threshold threshold suffix) (define (format-with-threshold threshold suffix)
;; upconvert by factor of 100 to get two digits after decimal ;; upconvert by factor of 100 to get two digits after decimal
(format "~a ~a" (exact->inexact (/ (round ((* bytecount 100) . / . threshold)) 100)) suffix)) (format "~a ~a" (exact->inexact (/ (round ((* bytecount 100) . / . threshold)) 100)) suffix))
@ -24,4 +28,7 @@
;; for use inside quasiquote ;; for use inside quasiquote
;; instead of ,(when ...) use ,@(when/splice ...) ;; instead of ,(when ...) use ,@(when/splice ...)
;; to avoid voids ;; to avoid voids
(define-syntax-rule (when/splice test body) (if test (list body) '())) (define-syntax (when/splice stx)
(syntax-case stx ()
[(_ test body)
#'(if test (list body) '())]))
Loading…
Cancel
Save