From abd302a839076d26e5abd516378fb9740973fed8 Mon Sep 17 00:00:00 2001 From: AlexKnauth Date: Thu, 27 Aug 2015 17:54:45 -0400 Subject: [PATCH] split functional-set? predicate into separate module --- lens/private/util/functional-set.rkt | 17 +++++++++++++++++ unstable/lens/set-filterer.rkt | 12 +----------- 2 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 lens/private/util/functional-set.rkt diff --git a/lens/private/util/functional-set.rkt b/lens/private/util/functional-set.rkt new file mode 100644 index 0000000..4fe1613 --- /dev/null +++ b/lens/private/util/functional-set.rkt @@ -0,0 +1,17 @@ +#lang sweet-exp racket/base + +provide functional-set? + +require racket/set +module+ test + require rackunit + +(define (functional-set? st) + (and (generic-set? st) + (set-implements? st 'set-add 'set-remove) + (not (set-mutable? st)))) + +module+ test + (check-true (functional-set? (set 1 2 3))) + (check-true (functional-set? '(1 2 3))) + (check-false (functional-set? (mutable-set 1 2 3))) diff --git a/unstable/lens/set-filterer.rkt b/unstable/lens/set-filterer.rkt index d941b01..76940ae 100644 --- a/unstable/lens/set-filterer.rkt +++ b/unstable/lens/set-filterer.rkt @@ -7,6 +7,7 @@ provide set-filterer-lens (-> predicate/c (lens/c functional-set? functional-set?)) require lens/private/base/main + lens/private/util/functional-set racket/set racket/function fancy-app @@ -51,14 +52,3 @@ module+ test (set 4 5 6 7 'a 'b 'c 'd 'e)) (check-exn exn:fail:contract? (thunk (lens-set (set-filterer-lens number?) (set 1) (set 'a)))) - - -(define (functional-set? st) - (and (generic-set? st) - (set-implements? st 'set-add 'set-remove) - (not (set-mutable? st)))) - -module+ test - (check-true (functional-set? (set 1 2 3))) - (check-true (functional-set? '(1 2 3))) - (check-false (functional-set? (mutable-set 1 2 3)))