Hi all, I’ve been trying to create JSExprs, as defined in the typed/json library. This is one of those instances where it seems like I must be making things harder than they should be, but I’m still feeling like a duck on rollerskates in TR, so I want to make sure I’m not missing an easier way to do it.
Would you please confirm if this is indeed a smallest-possible solution? ;;;; begin #lang typed/racket/base (require typed/json) (: jsx JSExpr) ; <-- jsx is what I ultimately want. ;; Attempt #1: #; (define jsx #hasheq((a . "val1") (b . "val2") (c . "val3"))) #| Resulting error: Type Checker: type mismatch expected: JSExpr given: (HashTable Symbol String) [This seems weird, since it seems like (HashTable Symbol String) should be a subtype of JSExpr. Is the problem that the typechecker can’t recognize the Strings as JSExprs?] |# ;; Attempt #N (shortest successful version I’ve found): (define jsx (for/hasheq : (HashTable Symbol JSExpr) ([k '(a b c)] [v '("val1" "val2" "val3")]) (values k v))) ;;;; end Regards, Jordan
____________________ Racket Users list: http://lists.racket-lang.org/users