x:int = if true then 3 else 5 のようなものを文字列に変換するモジュールを作成しようとしています
ここに私がこれまでに持っているコードがあります
module Ast =
struct
type typ = Bool | Int
type var = A | B | C | D | E | F
type exp = Const of int * typ
| App of string * exp list
| If of exp * exp * exp
| And of exp * exp
| Or of exp * exp
| Id of var * typ * exp
let rec toString (t) =
let formatDec1(va,ty,e) = ???
match t with
Const(n, _) -> print_int n
| App(id, [e1; e2]) -> formatter(" " ^ id ^ " ", e1, e2)
| App(id, [e1]) -> formatter(" " ^ id ^ " ", e1, Const(0, Int))
| App(id, _) -> formatter(" " ^ id ^ " ", Const(0, Int), Const(0, Int))
| If(e1, e2, e3) -> formatIf(e1, e2, e3)
| And(e1, e2) -> formatter(" && ", e1, e2)
| Or(e1, e2) -> formatter(" || ", e1, e2)
| Id(va,ty,e) -> formatDecl(va,ty,e)
end
私はまだOCamlの初心者であり、オンラインで文字列に変換することについて何も見つけることができませんでした. ありがとう!