On Dec 6, 2014, at 1:08 AM, Alexis King wrote: >> It doesn’t have to be a struct, but the problem is that typed racket doesn’t >> know that a value of type String for instance will be of type JSExpr or not, >> so you would have to put (assert x jsexpr?) around everything that you want >> to treat as a jsexpr. > > Ah, that’s interesting. I’d seen assert when digging through the docs, but I > didn’t quite realize how it worked at the time. Looking back at it again, I’m > surprised I missed it, but no matter. > > That does solve the problem, albeit rather inelegantly. I’d be interested to > see if there’s another way, but I would understand why it would be difficult > to implement a cleaner approach.
From 100,000 ft: JSON and XML and such things have one of two types: a coarse one that does not really address the things a programmer thinks and an incredibly fine-grained one that expresses all of these things. The latter requires a highly intrinsic, complicated, difficult to use thing [due to the union/recursive/dynamic nature of the objects], which no real languages comes with. I conjecture that TR could accommodate just such a type system -- but that might be a dissertation. I should talk to Sam. -- Matthias
____________________ Racket Users list: http://lists.racket-lang.org/users

