diff --git a/main.rkt b/main.rkt index 911ff8c..3c1e217 100644 --- a/main.rkt +++ b/main.rkt @@ -10,7 +10,6 @@ "misc.rkt" "string.rkt" "len.rkt" - "tree.rkt" "values.rkt") (provide @@ -24,5 +23,4 @@ "misc.rkt" "string.rkt" "len.rkt" - "tree.rkt" "values.rkt")) \ No newline at end of file diff --git a/tests.rkt b/tests.rkt index e2ea756..55162b0 100644 --- a/tests.rkt +++ b/tests.rkt @@ -98,19 +98,6 @@ (check-equal? (filter-split '(1 2 3 4 5 6) even?) '((1)(3)(5))) -(check-equal? (filter-tree string? '(p)) null) -(check-equal? (filter-tree string? '(p "foo" "bar")) '("foo" "bar")) -(check-equal? (filter-tree string? '(p "foo" (p "bar"))) '("foo" ("bar"))) -(check-equal? (filter-tree (λ(i) (and (string? i) (equal? i "\n"))) '("\n" (foo "bar") "\n")) '("\n" "\n")) -(check-equal? (filter-not-tree string? '(p)) '(p)) -(check-equal? (filter-not-tree string? '(p "foo" "bar")) '(p)) -(check-equal? (filter-not-tree string? '(p "foo" (p "bar"))) '(p (p))) -;(check-equal? (filter-tree (λ(i) (and (tagged-xexpr? i) (equal? 'em (car i)))) '(p "foo" (em "bar"))) '(p "foo")) - -(check-equal? (map-tree (λ(i) (if (number? i) (* 2 i) i)) '(p 1 2 3 (em 4 5))) '(p 2 4 6 (em 8 10))) -(check-equal? (map-tree (λ(i) (if (symbol? i) 'foo i)) '(p 1 2 3 (em 4 5))) '(foo 1 2 3 (foo 4 5))) - - (define foo-path-strings '("foo" "foo.txt" "foo.bar" "foo.bar.txt")) (define-values (foo-path foo.txt-path foo.bar-path foo.bar.txt-path) (apply values (map ->path foo-path-strings))) diff --git a/tree.rkt b/tree.rkt deleted file mode 100644 index 0a12d3b..0000000 --- a/tree.rkt +++ /dev/null @@ -1,31 +0,0 @@ -#lang racket/base -(require "define.rkt") - -(module+ test (require rackunit)) - -(define+provide/contract (filter-tree proc tree) - (procedure? list? . -> . list?) - (define (remove-empty x) - (cond - [(list? x) (filter (compose1 not null?) (map remove-empty x))] - [else x])) - - (define (filter-tree-inner proc x) - (cond - [(list? x) (map (λ(i) (filter-tree-inner proc i)) x)] - [else (if (proc x) x null)])) - - (remove-empty (filter-tree-inner proc tree))) - - -(define+provide/contract (filter-not-tree proc tree) - (procedure? list? . -> . list?) - (filter-tree (λ(i) (not (proc i))) tree)) - - -(define+provide/contract (map-tree proc tree) - (procedure? list? . -> . list?) - (cond - [(list? tree) (map (λ(i) (map-tree proc i)) tree)] - [else (proc tree)])) -