From b9a7dc01b8ee1f923ec8dfc3684ef00b5fc452c2 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Sat, 23 May 2009 08:42:17 +0000 Subject: [PATCH] `scheme' is now srfi/1-free. (All `delete-duplicate' requires were not necessary.) svn: r14956 --- collects/scheme/match/compiler.ss | 3 +-- collects/scheme/match/parse-helper.ss | 3 +-- collects/scheme/match/parse-legacy.ss | 3 +-- collects/scheme/match/parse-quasi.ss | 3 +-- collects/scheme/match/parse.ss | 1 - collects/scheme/match/reorder.ss | 13 ++++++++----- 6 files changed, 12 insertions(+), 14 deletions(-) diff --git a/collects/scheme/match/compiler.ss b/collects/scheme/match/compiler.ss index 0d0efd74fb..5413a5d8e9 100644 --- a/collects/scheme/match/compiler.ss +++ b/collects/scheme/match/compiler.ss @@ -8,8 +8,7 @@ "reorder.ss" scheme/struct-info scheme/stxparam - scheme/nest - (only-in srfi/1 delete-duplicates)) + scheme/nest) (provide compile*) diff --git a/collects/scheme/match/parse-helper.ss b/collects/scheme/match/parse-helper.ss index 43ce9e91d8..daf6ca64ac 100644 --- a/collects/scheme/match/parse-helper.ss +++ b/collects/scheme/match/parse-helper.ss @@ -5,8 +5,7 @@ syntax/stx scheme/struct-info "patterns.ss" - "compiler.ss" - (only-in srfi/1 delete-duplicates)) + "compiler.ss") (provide ddk? parse-literal all-vars pattern-var? match:syntax-err match-expander-transform trans-match parse-struct diff --git a/collects/scheme/match/parse-legacy.ss b/collects/scheme/match/parse-legacy.ss index b8abf16dc1..109fac63cf 100644 --- a/collects/scheme/match/parse-legacy.ss +++ b/collects/scheme/match/parse-legacy.ss @@ -7,8 +7,7 @@ "patterns.ss" "compiler.ss" "parse-helper.ss" - "parse-quasi.ss" - (only-in srfi/1 delete-duplicates)) + "parse-quasi.ss") (provide parse/legacy/cert) diff --git a/collects/scheme/match/parse-quasi.ss b/collects/scheme/match/parse-quasi.ss index d602d94791..65a85581f1 100644 --- a/collects/scheme/match/parse-quasi.ss +++ b/collects/scheme/match/parse-quasi.ss @@ -6,8 +6,7 @@ scheme/struct-info "patterns.ss" "compiler.ss" - "parse-helper.ss" - (only-in srfi/1 delete-duplicates)) + "parse-helper.ss") (provide parse-quasi) diff --git a/collects/scheme/match/parse.ss b/collects/scheme/match/parse.ss index ce58a12fad..0fbfc04b6a 100644 --- a/collects/scheme/match/parse.ss +++ b/collects/scheme/match/parse.ss @@ -7,7 +7,6 @@ "compiler.ss" "parse-helper.ss" "parse-quasi.ss" - (only-in srfi/1 delete-duplicates) (for-template (only-in "runtime.ss" matchable?) scheme/base)) diff --git a/collects/scheme/match/reorder.ss b/collects/scheme/match/reorder.ss index b69c3f5e9c..ae6ee6ed10 100644 --- a/collects/scheme/match/reorder.ss +++ b/collects/scheme/match/reorder.ss @@ -2,7 +2,6 @@ (require "patterns.ss" scheme/list - (only-in srfi/1/list take-while) (for-syntax scheme/base)) (provide reorder-columns) @@ -52,16 +51,20 @@ (define (or-all? ps l) (ormap (lambda (p) (andmap p l)) ps)) +(define (count-while pred l) + (let loop ([l l] [r 0]) + (if (or (null? l) (not (pred (car l)))) r (loop (cdr l) (add1 r))))) + (define (score col) (define n (length col)) (define c (car col)) (define preds (list Var? Pair? Null?)) (cond [(or-all? preds col) (add1 n)] [(andmap CPat? col) n] - [(Var? c) (length (take-while Var? col))] - [(Pair? c) (length (take-while Pair? col))] - [(Vector? c) (length (take-while Vector? col))] - [(Box? c) (length (take-while Box? col))] + [(Var? c) (count-while Var? col)] + [(Pair? c) (count-while Pair? col)] + [(Vector? c) (count-while Vector? col)] + [(Box? c) (count-while Box? col)] [else 0])) (define (reorder-by ps scores*)