Type 01->boolean.
This commit is contained in:
parent
687aea5337
commit
b026f74f39
2 changed files with 22 additions and 19 deletions
|
@ -498,3 +498,12 @@ Converts any non-@racket[#f] value to 1 and @racket[#f] to 0.
|
||||||
(any->01 #f)
|
(any->01 #f)
|
||||||
(any->01 'hello)
|
(any->01 'hello)
|
||||||
]}
|
]}
|
||||||
|
|
||||||
|
@defproc[(01->boolean [x (U Zero One)]) Boolean]{
|
||||||
|
|
||||||
|
Converts 0 to @racket[#f] and 1 to @racket[#t].
|
||||||
|
|
||||||
|
@examples[#:eval utils-evaluator
|
||||||
|
(01->boolean 0)
|
||||||
|
(01->boolean 1)
|
||||||
|
]}
|
||||||
|
|
32
utils.rkt
32
utils.rkt
|
@ -25,7 +25,8 @@
|
||||||
update-vertices/unweighted update-graph dotit collect-by-key
|
update-vertices/unweighted update-graph dotit collect-by-key
|
||||||
collect-by-key/sets ht-values/list->set hash->list/ordered
|
collect-by-key/sets ht-values/list->set hash->list/ordered
|
||||||
multi-split-at lists-transpose in-random cartesian-product-2/stream
|
multi-split-at lists-transpose in-random cartesian-product-2/stream
|
||||||
cartesian-product/stream boolean-power boolean-power/stream any->01)
|
cartesian-product/stream boolean-power boolean-power/stream any->01
|
||||||
|
01->boolean)
|
||||||
|
|
||||||
(define-type Variable Symbol)
|
(define-type Variable Symbol)
|
||||||
(define-type (VariableMapping A) (Immutable-HashTable Variable A))
|
(define-type (VariableMapping A) (Immutable-HashTable Variable A))
|
||||||
|
@ -550,6 +551,15 @@
|
||||||
(test-case "any->01"
|
(test-case "any->01"
|
||||||
(check-equal? (any->01 #t) 1)
|
(check-equal? (any->01 #t) 1)
|
||||||
(check-equal? (any->01 #f) 0)))
|
(check-equal? (any->01 #f) 0)))
|
||||||
|
|
||||||
|
(: 01->boolean (-> (U Zero One) Boolean))
|
||||||
|
(define (01->boolean x)
|
||||||
|
(case x [(0) #f] [else #t]))
|
||||||
|
|
||||||
|
(module+ test
|
||||||
|
(test-case "01->boolean"
|
||||||
|
(check-equal? (01->boolean 0) #f)
|
||||||
|
(check-equal? (01->boolean 1) #t)))
|
||||||
)
|
)
|
||||||
|
|
||||||
(require 'typed)
|
(require 'typed)
|
||||||
|
@ -561,13 +571,12 @@
|
||||||
update-vertices/unweighted update-graph dotit collect-by-key
|
update-vertices/unweighted update-graph dotit collect-by-key
|
||||||
collect-by-key/sets ht-values/list->set hash->list/ordered
|
collect-by-key/sets ht-values/list->set hash->list/ordered
|
||||||
multi-split-at lists-transpose in-random cartesian-product-2/stream
|
multi-split-at lists-transpose in-random cartesian-product-2/stream
|
||||||
cartesian-product/stream boolean-power boolean-power/stream any->01)
|
cartesian-product/stream boolean-power boolean-power/stream any->01
|
||||||
|
01->boolean)
|
||||||
|
|
||||||
;;; Untyped section.
|
;;; Untyped section.
|
||||||
|
|
||||||
(provide
|
(provide
|
||||||
;; Functions
|
|
||||||
(contract-out [01->boolean (-> (or/c 0 1) boolean?)])
|
|
||||||
;; Contracts
|
;; Contracts
|
||||||
(contract-out [variable-mapping? contract?]
|
(contract-out [variable-mapping? contract?]
|
||||||
[string-variable-mapping? contract?]
|
[string-variable-mapping? contract?]
|
||||||
|
@ -586,18 +595,3 @@
|
||||||
(define (general-pair/c key-contract val-contract)
|
(define (general-pair/c key-contract val-contract)
|
||||||
(or/c (list/c key-contract val-contract)
|
(or/c (list/c key-contract val-contract)
|
||||||
(cons/c key-contract val-contract)))
|
(cons/c key-contract val-contract)))
|
||||||
|
|
||||||
|
|
||||||
;;; ==================
|
|
||||||
;;; Boolean operations
|
|
||||||
;;; ==================
|
|
||||||
|
|
||||||
|
|
||||||
;;; Converts 0 to #f and 1 to #t
|
|
||||||
(define (01->boolean x)
|
|
||||||
(case x [(0) #f] [else #t]))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(test-case "01->boolean"
|
|
||||||
(check-equal? (01->boolean 0) #f)
|
|
||||||
(check-equal? (01->boolean 1) #t)))
|
|
||||||
|
|
Loading…
Reference in a new issue