나는 X 같은 것을 변환 모듈 작성하려고 해요 : true의 경우 다음 다른 3 ~ 5 문자열 여기내장되지 않은 유형을 Ocaml에서 문자열로 변환하는 방법은 무엇입니까?
에 INT = 지금까지
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에서 문자열을 온라인으로 변환에 대해 아무것도 찾을 수 없습니다. 감사!
예를 들어 무엇이 결과입니까? – didierc
은 "x : int = true이면 3 else 5"와 같습니다. 지금까지 가지고있는 toString 함수가 올바른 경로에 있는지 확실하지 않습니다. – otchkcom
그것은 ast -> string – otchkcom