utils.rkt: Add handle-org-booleans.

This commit is contained in:
Sergiu Ivanov 2020-12-06 21:58:49 +01:00
parent 54905071d7
commit e3efbb8f65

View file

@ -160,3 +160,17 @@
(test-case "string->any" (test-case "string->any"
(check-equal? (string->any "(or b (not a))") '(or b (not a))) (check-equal? (string->any "(or b (not a))") '(or b (not a)))
(check-equal? (string->any "14") 14))) (check-equal? (string->any "14") 14)))
;;; Given a sexp, converts all "#f" to #f and "#t" to #t.
;;;
;;; When I read Org-mode tables, I pump them through a call to the
;;; prin1 because the elisp sexp seems incompatible with Racket. On
;;; the other hand, Racket Booleans seem to upset elisp a little, so
;;; prin1 wraps them in additional double quotes. This function
;;; removes those quotes.
(: handle-org-booleans (-> Any Any))
(define/match (handle-org-booleans datum)
[("#t") #t]
[("#f") #f]
[((? list?)) (map handle-org-booleans datum)]
[(_) datum])