split functional-set? predicate into separate module
This commit is contained in:
parent
b5ab927e6e
commit
abd302a839
17
lens/private/util/functional-set.rkt
Normal file
17
lens/private/util/functional-set.rkt
Normal file
|
@ -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)))
|
|
@ -7,6 +7,7 @@ provide
|
||||||
set-filterer-lens (-> predicate/c (lens/c functional-set? functional-set?))
|
set-filterer-lens (-> predicate/c (lens/c functional-set? functional-set?))
|
||||||
|
|
||||||
require lens/private/base/main
|
require lens/private/base/main
|
||||||
|
lens/private/util/functional-set
|
||||||
racket/set
|
racket/set
|
||||||
racket/function
|
racket/function
|
||||||
fancy-app
|
fancy-app
|
||||||
|
@ -51,14 +52,3 @@ module+ test
|
||||||
(set 4 5 6 7 'a 'b 'c 'd 'e))
|
(set 4 5 6 7 'a 'b 'c 'd 'e))
|
||||||
(check-exn exn:fail:contract?
|
(check-exn exn:fail:contract?
|
||||||
(thunk (lens-set (set-filterer-lens number?) (set 1) (set 'a))))
|
(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)))
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user