networks: Add print-org-sbfs/state.
This commit is contained in:
parent
835b89bbb8
commit
664aa89c6a
1 changed files with 27 additions and 0 deletions
27
networks.rkt
27
networks.rkt
|
@ -95,6 +95,8 @@
|
||||||
[read-org-sbfs/state (->* (string?) (#:headers boolean?) (listof sbf/state?))]
|
[read-org-sbfs/state (->* (string?) (#:headers boolean?) (listof sbf/state?))]
|
||||||
[print-org-tbfs/state (->* ((non-empty-listof tbf/state?)) (#:headers boolean?)
|
[print-org-tbfs/state (->* ((non-empty-listof tbf/state?)) (#:headers boolean?)
|
||||||
(listof (listof (or/c number? symbol?))))]
|
(listof (listof (or/c number? symbol?))))]
|
||||||
|
[print-org-sbfs/state (->* ((non-empty-listof tbf/state?)) (#:headers boolean?)
|
||||||
|
(listof (listof (or/c number? symbol?))))]
|
||||||
[tbf/state-tabulate* (->* ((non-empty-listof tbf/state?)) (#:headers boolean?)
|
[tbf/state-tabulate* (->* ((non-empty-listof tbf/state?)) (#:headers boolean?)
|
||||||
(listof (listof (or/c symbol? number?))))]
|
(listof (listof (or/c symbol? number?))))]
|
||||||
[tbf/state-tabulate (->* (tbf/state?) (#:headers boolean?)
|
[tbf/state-tabulate (->* (tbf/state?) (#:headers boolean?)
|
||||||
|
@ -1161,6 +1163,31 @@
|
||||||
(check-equal? (print-org-tbfs/state tbfs)
|
(check-equal? (print-org-tbfs/state tbfs)
|
||||||
'((a b θ) (1 2 3) (-2 1 1)))))
|
'((a b θ) (1 2 3) (-2 1 1)))))
|
||||||
|
|
||||||
|
;;; Like print-org-tbfs/state, but expects a list of SBFs. The
|
||||||
|
;;; thresholds are therefore not included in the output.
|
||||||
|
;;;
|
||||||
|
;;; All sbf/state in the list must have the same inputs. The function
|
||||||
|
;;; does not check this property.
|
||||||
|
;;;
|
||||||
|
;;; If #:headers is #f, does not print the names of the inputs of the
|
||||||
|
;;; TBFs. If #:headers is #t, the output starts by a list giving the
|
||||||
|
;;; names of the variables.
|
||||||
|
(define (print-org-sbfs/state sbfs #:headers [headers #t])
|
||||||
|
(define table (for/list ([sbf (in-list sbfs)])
|
||||||
|
(hash-map (tbf/state-w sbf) (λ (_ w) w) #t)))
|
||||||
|
(if headers
|
||||||
|
(cons (hash-map (tbf/state-w (car sbfs)) (λ (x _) x) #t)
|
||||||
|
table)
|
||||||
|
table))
|
||||||
|
|
||||||
|
(module+ test
|
||||||
|
(define sbfs (list (make-sbf/state '((a . 1) (b . 2)))
|
||||||
|
(make-sbf/state '((a . -2) (b . 1)))))
|
||||||
|
(check-equal? (print-org-sbfs/state sbfs)
|
||||||
|
'((a b) (1 2) (-2 1)))
|
||||||
|
(check-equal? (print-org-sbfs/state sbfs #:headers #f)
|
||||||
|
'((1 2) (-2 1))))
|
||||||
|
|
||||||
;;; Tabulates a list of tbf/state.
|
;;; Tabulates a list of tbf/state.
|
||||||
;;;
|
;;;
|
||||||
;;; As in the case of tbf-tabulate*, the result is a list of lists
|
;;; As in the case of tbf-tabulate*, the result is a list of lists
|
||||||
|
|
Loading…
Reference in a new issue