3
的總和型比方說,你有一個類型聲明:創建C實現OCaml的功能
type foo = Bar | Baz of int
你將如何實現一個C function創建巴茲?比方說,我聲明它是這樣的:
external create_baz : int -> foo = "create_baz"
那我就需要填寫驗證碼:
CAMLprim value create_baz(value bar) {
// what do I do here?
}
我明白,這是做一個相當愚蠢的事情,但它只是和實例我正在嘗試做什麼。
哪一部分,告訴它,它是一個「巴茲」? – brooks94
關於C中變體的另一個閱讀,http://www.linux-nantes.org/~fmonnier/ocaml/ocaml-wrapping-c.html#ref_enums – nlucaroni
結果是塊的事實表明它是構造函數之一這需要一個價值。標籤爲0的事實表明它是帶*值的第一個*構造函數。因此,'巴茲'。參見第19.3.4節。 –