Si j'ai ce type de données SML disons que j'ai ce tableau avec un seul objet
avec un objet code> ce qui en fait un
JSON CODE> LISTE P>
val four = Succ (Succ (Succ (Succ Zero)))
3 Réponses :
Vous devez accusé sur la liste "INTÉRIEUR" THE tableau [...] code> n'est pas une liste
JSON code>, c'est un
json code> et
:: code> :: code> ne peut pas être deux
json code> s dans une liste.
Array CODE>: P>
fun json_cons o (Array os) = Array (o :: os)
| json_cons _ _ = ... handle structural error ...
Merci, cela m'a revenu. Cependant, le fait que ([objet [((((((A ", num 2.0)]]]) code> est une liste
json code> comme
[2] code> est
'Une liste CODE> est plutôt bizarre à la recherche et j'aurais été dans de nombreux cycles "Test-test".
[2] code> est une liste
int code>, pas un
'une liste code> (Vous ne pouvez pas créer un
' une liste code >, comme ils ne peuvent pas exister);
2 code> est un
int code> et ajout du
[] code> autour de celui-ci fait une liste
int code>. Si une expression
E code> a le type
json code>,
[e] code> a la liste de type
json code>.
Bien, mais pourquoi les parenthèses sont-elles nécessaires autour de [objet [((("A", NUM 2.0)]]] code> pour la liste de liste? Si
[2] code> est une liste
int code>, pourquoi n'est-il pas seulement
[objet [(((("A", num 2.0)]] code> a < Code> Liste JSON CODE> prêt pour le consentre? Au lieu de cela, j'ai besoin de
([objet [((("A", NUM 2.0)]]) CODE> Pour consacrer.
Ok, tu m'as eu là ... Les parenthèses ne sont pas nécessaires, en raison de la faible priorité de :: code>. Je les ai mis là-bas pour plus de clarté, mais
Array (objet [(("A", NUM 1.0)] :: [Objet [(("A", NUM 2.0)]]] CODE> fonctionne également.
Avec l'aide de Molbdnilo, j'ai passé le bloc mental de la manière de créer une liste code> code>. Étant donné que test p> Voici un autre exemple à la construction directe p> pour une personne habituée à test p> ... Types ... p> p > tableau code> est également un constructeur, c'est-à-dire comme une fonction, nous pouvons faire des choses à l'intérieur de cet appel de fonction constructeur, nommément, nous pouvons faire une liste normale intérieure em> le
Array code> constructeur
1 :: [2] code> C'est bizarre, en particulier le
([[...] [...]]) code> comme partie du CDR . Voici donc le code p>
Merci pour l'aide de Molbdnilo sur la création de la fonction "Inconvénients pour JSON" ". Fixation d'une version de récursion de la queue de la solution:
fun make_silly_json i = let fun aux(i, acc) = if i = 0 then acc else let val json_val = Object[("n", Num(int_to_real(i))),("b", True)] fun json_con (obj, (Array os)) = Array(obj::os) | json_con (_,_) = (Array []) in aux(i-1, json_con(json_val, acc)) end in aux(i, Array[]) end