finished type_ macro
Merci.
Changes to be committed: * samples/inductive.typer - finished the type_ macro * samples/int_index_inconsistency.typer - type index are inconsistent * src/builtin.ml - improved error message
Au fait, pourrais-tu mettre des commit-message un peu plus détaillés?
- let sexp_nil = nil (a := Sexp) in + let sexp_nil = (nil (a := Sexp)) in
Pourquoi?
+ let type-name = get-name name in
À quoi sert ce get-name?
+type Nat t + | succ Nat + | zero;
C'est quoi le "t"?
+let _ = (add_test "EVAL" "Monads" (fun () -> + reset_eval_trace (); + + let dcode = " + c = bind (a := Type) (b := Type) (open \"./_build/w_file.txt\" \"w\") + (lambda (f : FileHandle) -> + write f \"Hello2\"); + + " in + + let rctx, lctx = eval_decl_str dcode lctx rctx in + + let rcode = "run-io (a := Type) (b := Unit) c Unit" in + + (* Eval defined lambda *) + let ret = eval_expr_str rcode lctx rctx in + (* Expect a 3 results *) + match ret with + | [v] -> success () + | _ -> failure () +))
Pour les eval_test, ça serait bien de faire qqch comme j'ai fait pour les sexp, i.e. de pouvoir simplement écrire quelques tests où tu donnes 2 expressions Typer et le test vérifie qu'elles renvoient la même valeur. Comme ça on peut ajouter des tests sans avoir à recopier un gros boilerplate de code Ocaml. Stefan