functions: Add tabulate*/boolean.
This commit is contained in:
parent
26c615e6cf
commit
78386dd5bf
1 changed files with 13 additions and 0 deletions
|
@ -15,6 +15,7 @@
|
||||||
[tabulate (-> procedure? (listof generic-set?) (listof list?))]
|
[tabulate (-> procedure? (listof generic-set?) (listof list?))]
|
||||||
[tabulate* (-> (listof procedure?) (listof generic-set?) (listof list?))]
|
[tabulate* (-> (listof procedure?) (listof generic-set?) (listof list?))]
|
||||||
[tabulate/boolean (-> procedure-fixed-arity? (listof (listof boolean?)))]
|
[tabulate/boolean (-> procedure-fixed-arity? (listof (listof boolean?)))]
|
||||||
|
[tabulate*/boolean (-> (non-empty-listof procedure?) (listof list?))]
|
||||||
[table->function (-> (listof (*list/c any/c any/c)) procedure?)]
|
[table->function (-> (listof (*list/c any/c any/c)) procedure?)]
|
||||||
[table->function/list (-> (listof (*list/c any/c any/c)) procedure?)]
|
[table->function/list (-> (listof (*list/c any/c any/c)) procedure?)]
|
||||||
[enumerate-boolean-tables (-> number? (stream/c (listof (*list/c boolean? boolean?))))]
|
[enumerate-boolean-tables (-> number? (stream/c (listof (*list/c boolean? boolean?))))]
|
||||||
|
@ -69,6 +70,18 @@
|
||||||
(check-equal? (tabulate/boolean (lambda (x y) (and x y)))
|
(check-equal? (tabulate/boolean (lambda (x y) (and x y)))
|
||||||
'((#f #f #f) (#f #t #f) (#t #f #f) (#t #t #t)))))
|
'((#f #f #f) (#f #t #f) (#t #f #f) (#t #t #t)))))
|
||||||
|
|
||||||
|
;;; Like tabulate/boolean, but takes a list of functions of the same
|
||||||
|
;;; arity.
|
||||||
|
(define (tabulate*/boolean funcs)
|
||||||
|
(define doms (make-list (procedure-arity (car funcs)) '(#f #t)))
|
||||||
|
(tabulate* funcs doms))
|
||||||
|
|
||||||
|
(module+ test
|
||||||
|
(test-case "tabulate*/boolean"
|
||||||
|
(check-equal? (tabulate*/boolean `(,(λ (x y) (and x y))
|
||||||
|
,(λ (x y) (or x y))))
|
||||||
|
'((#f #f #f #f) (#f #t #f #t) (#t #f #f #t) (#t #t #t #t)))))
|
||||||
|
|
||||||
|
|
||||||
;;; ======================
|
;;; ======================
|
||||||
;;; Constructing functions
|
;;; Constructing functions
|
||||||
|
|
Loading…
Reference in a new issue