Type sbf/state?.
This commit is contained in:
parent
ed67927803
commit
b8b9fee9ce
2 changed files with 19 additions and 0 deletions
|
@ -81,3 +81,13 @@ and weights, as well as a threshold.
|
|||
@ex[
|
||||
(make-tbf/state '((x1 . 1) (x2 . 1)) 1)
|
||||
]}
|
||||
|
||||
@defproc[(sbf/state? [tbfs TBF/State]) Boolean]{
|
||||
|
||||
A state sign Boolean function (SBF) is a @racket[TBF/State] whose
|
||||
threshold is 0.
|
||||
|
||||
@ex[
|
||||
(sbf/state? (tbf/state (hash 'a -1 'b 1) 0))
|
||||
(sbf/state? (tbf/state (hash 'a -1 'b 1) 1))
|
||||
]}
|
||||
|
|
9
tbn.rkt
9
tbn.rkt
|
@ -16,6 +16,7 @@
|
|||
apply-tbf-to-state
|
||||
|
||||
(struct-out tbf/state) TBF/State tbf/state-w tbf/state-θ make-tbf/state
|
||||
sbf/state?
|
||||
)
|
||||
|
||||
(: apply-tbf-to-state (-> TBF (State (U Zero One)) (U Zero One)))
|
||||
|
@ -45,6 +46,14 @@
|
|||
(define f (make-tbf/state '((x1 . 1) (x2 . 1)) 1))
|
||||
(check-equal? (tbf/state-w f) #hash((x1 . 1) (x2 . 1)))
|
||||
(check-equal? (tbf/state-θ f) 1)))
|
||||
|
||||
(: sbf/state? (-> TBF/State Boolean))
|
||||
(define (sbf/state? tbfs) (zero? (tbf/state-θ tbfs)))
|
||||
|
||||
(module+ test
|
||||
(test-case "sbf/state?"
|
||||
(check-true (sbf/state? (tbf/state (hash 'a -1 'b 1) 0)))
|
||||
(check-false (sbf/state? (tbf/state (hash 'a -1 'b 1) 1)))))
|
||||
)
|
||||
|
||||
(module+ test
|
||||
|
|
Loading…
Reference in a new issue