From 4302033e8281aaaf006edc65dfe0b06bdff3588d Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sun, 14 Sep 2008 03:50:20 +0000 Subject: [PATCH] svn: r11741 --- collects/mzlib/scribblings/contract.scrbl | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/collects/mzlib/scribblings/contract.scrbl b/collects/mzlib/scribblings/contract.scrbl index 07b39c2473..65dbd92e98 100644 --- a/collects/mzlib/scribblings/contract.scrbl +++ b/collects/mzlib/scribblings/contract.scrbl @@ -5,8 +5,9 @@ @(define-syntax-rule (twocolumns id ...) (*twocolumns (list (scheme id) ...))) -@(define (*twocolumns l) - (let* ([len (length l)] +@(define (*twocolumns uneven-l) + (let* ([l (if (zero? (modulo (length uneven-l) 2)) uneven-l (append uneven-l (list #f)))] + [len (length l)] [half (quotient len 2)] [a (for/list ([i (in-range half)] [e l]) @@ -19,12 +20,20 @@ (list (to-flow spacer) (to-flow a) (to-flow spacer) - (to-flow b))) + (to-flow (or b "")))) a b)))) @mzlib[#:mode title contract] -The @schememodname[mzlib/list] library re-exports many bindings +This library is designed as a backwards compatible library +for old uses of contracts. It should not be used for new +libraries; use @schememodname[scheme/contract] instead. + +The main differences: the function contract syntax is more +regular and function contracts now support keywords, and +@tt{union} is now @scheme[or/c]. + +The @schememodname[mzlib/contract] library re-exports many bindings from @schememodname[scheme/contract]: @twocolumns[ @@ -80,5 +89,5 @@ from @schememodname[scheme/contract]: vector-immutable/c vector-immutableof vector/c - ] -@scheme[vectorof] + vectorof] +