我可能會考慮頂級錯誤的方式。作爲項目的一部分,維護一系列頂級指令的首選方法是什麼?在ml文件中嵌入頂級指令
是否有辦法在OCaml源文件中包含像#install_printer
這樣的頂級指令,以便在程序編譯時被忽略,但在運行時由頂層執行?當編譯程序時,即使指令本身被忽略,我也希望類型檢查指令的理想狀態,例如,
type 'a with_infinity = Finite of 'a | Infinite
let print_int_with_infinity pp item =
(match item with
| Infinite -> Format.pp_print_string pp "Infinite"
| Finite i -> Format.pp_print_int pp i)
(* install printer cannot occur in this context *)
#install_printer print_int_with_infinity
你的建議是 - 像往常一樣:) - 非常有價值的馬丁,這應該是被接受的答案! –