From a2b8df2a676ab58964e1f6a30c17639cd3782fb4 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Sat, 22 Feb 2020 18:58:19 +0100 Subject: [PATCH] utils: Generalise unstringify-pairs to accept both proper and improper pairs. --- utils.rkt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/utils.rkt b/utils.rkt index a600a28..5934229 100644 --- a/utils.rkt +++ b/utils.rkt @@ -15,7 +15,7 @@ [stringify-variable-mapping (-> variable-mapping? string-variable-mapping?)] [string->any (-> string? any/c)] [read-org-table (-> string? (listof any/c))] - [unstringify-pairs (-> (listof (cons/c string? string?)) (listof (cons/c symbol? any/c)))]) + [unstringify-pairs (-> (listof (list/c string? string?)) (listof (list/c symbol? any/c)))]) ;; Contracts (contract-out [variable-mapping? contract?] [string-variable-mapping? contract?]) @@ -179,5 +179,8 @@ ;;; string->any. (define (unstringify-pairs pairs) (for/list ([p pairs]) - (match-let ([(cons key val) p]) - (cons (string->symbol key) (string->any val))))) + (match p + [(list key val) + (cons (string->symbol key) (string->any val))] + [(cons key val) ; also handle improper pairs + (cons (string->symbol key) (string->any val))])))