utils: Generalise unstringify-pairs.
This commit is contained in:
parent
83a87acfc5
commit
018e3c6976
1 changed files with 11 additions and 6 deletions
17
utils.rkt
17
utils.rkt
|
@ -16,7 +16,7 @@
|
|||
[stringify-variable-mapping (-> variable-mapping? string-variable-mapping?)]
|
||||
[string->any (-> string? any/c)]
|
||||
[read-org-table (-> string? (listof any/c))]
|
||||
[unstringify-pairs (-> (listof (general-pair/c string? string?))
|
||||
[unstringify-pairs (-> (listof (general-pair/c string? any/c))
|
||||
(listof (general-pair/c symbol? any/c)))]
|
||||
[read-org-variable-mapping (-> string? variable-mapping?)]
|
||||
[update-vertices/unweighted (-> graph? (-> any/c any/c) graph?)])
|
||||
|
@ -183,16 +183,21 @@
|
|||
(or/c (list/c key-contract val-contract)
|
||||
(cons/c key-contract val-contract)))
|
||||
|
||||
;;; Given a list of pairs of strings, converts the first element of
|
||||
;;; each pair to a string, and reads the second element with
|
||||
;;; string->any.
|
||||
;;; Given a list of pairs of strings and some other values (possibly
|
||||
;;; strings), converts the first element of each pair to a string, and
|
||||
;;; reads the second element with string->any or keeps it as is if it
|
||||
;;; is not a string.
|
||||
(define (unstringify-pairs pairs)
|
||||
(for/list ([p pairs])
|
||||
(match p
|
||||
[(list key val)
|
||||
(cons (string->symbol key) (string->any val))]
|
||||
(cons (string->symbol key) (if (string? val)
|
||||
(string->any val)
|
||||
val))]
|
||||
[(cons key val) ; also handle improper pairs
|
||||
(cons (string->symbol key) (string->any val))])))
|
||||
(cons (string->symbol key) (if (string? val)
|
||||
(string->any val)
|
||||
val))])))
|
||||
|
||||
;;; Reads a variable mapping from a string, such as the one which
|
||||
;;; Org-mode produces from tables.
|
||||
|
|
Loading…
Reference in a new issue