networks: Add read-org-sbfs/state.
This commit is contained in:
parent
1ff413ddcc
commit
835b89bbb8
1 changed files with 23 additions and 0 deletions
23
networks.rkt
23
networks.rkt
|
@ -92,6 +92,7 @@
|
||||||
(#:headers boolean?)
|
(#:headers boolean?)
|
||||||
(listof sbf/state?))]
|
(listof sbf/state?))]
|
||||||
[read-org-tbfs/state (->* (string?) (#:headers boolean?) (listof tbf/state?))]
|
[read-org-tbfs/state (->* (string?) (#:headers boolean?) (listof tbf/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?))))]
|
||||||
[tbf/state-tabulate* (->* ((non-empty-listof tbf/state?)) (#:headers boolean?)
|
[tbf/state-tabulate* (->* ((non-empty-listof tbf/state?)) (#:headers boolean?)
|
||||||
|
@ -1110,6 +1111,28 @@
|
||||||
(tbf/state '#hash((x0 . 1) (x1 . 2)) 3)
|
(tbf/state '#hash((x0 . 1) (x1 . 2)) 3)
|
||||||
(tbf/state '#hash((x0 . 1) (x1 . 1)) 2)))))
|
(tbf/state '#hash((x0 . 1) (x1 . 1)) 2)))))
|
||||||
|
|
||||||
|
;;; Like read-org-tbfs/state, but reads a list of SBFs. Therefore,
|
||||||
|
;;; the lists of numbers in the sexp are taken to be the weights of
|
||||||
|
;;; the SBFs.
|
||||||
|
;;;
|
||||||
|
;;; If headers is #t, the names of the variables to appear as the
|
||||||
|
;;; inputs of the TBF are taken from the first list. If headers is
|
||||||
|
;;; #f, the names of the variables are generated as xi, where i is the
|
||||||
|
;;; index of the variable.
|
||||||
|
(define (read-org-sbfs/state str #:headers [headers #t])
|
||||||
|
(lists->sbfs/state (read-org-sexp str) #:headers headers))
|
||||||
|
|
||||||
|
(module+ test
|
||||||
|
(test-case "read-org-sbfs/state"
|
||||||
|
(check-equal? (read-org-sbfs/state "((a b) (-1 2) (1 1))")
|
||||||
|
(list
|
||||||
|
(tbf/state '#hash((a . -1) (b . 2)) 0)
|
||||||
|
(tbf/state '#hash((a . 1) (b . 1)) 0)))
|
||||||
|
(check-equal? (read-org-sbfs/state "((-1 2) (1 1))" #:headers #f)
|
||||||
|
(list
|
||||||
|
(tbf/state '#hash((x0 . -1) (x1 . 2)) 0)
|
||||||
|
(tbf/state '#hash((x0 . 1) (x1 . 1)) 0)))))
|
||||||
|
|
||||||
;;; Given a list of tbf/state, produces a sexp that Org-mode can
|
;;; Given a list of tbf/state, produces a sexp that Org-mode can
|
||||||
;;; interpret as a table.
|
;;; interpret as a table.
|
||||||
;;;
|
;;;
|
||||||
|
|
Loading…
Reference in a new issue