我有以下 SML 源文件,其中包含一个简单的函数:
(* fact.sml *)
fun fact_unguarded 0 = 1
| fact_unguarded n = n * fact_unguarded(n-1)
fun fact 0 = SOME(1)
| fact n = if n > 0 then SOME(n * fact_unguarded(n-1)) else NONE
我正在尝试使用 C 后端使用 MLTon 编译它并查看生成的 C 代码。
% mlton -codegen c fact.sml
但是,没有任何中间文件被转储到当前工作目录中,并且两者似乎都没有任何相关性/tmp
。有没有办法将 MLTon 引导到 a) 仅生成 C 源文件并停止或 b) 即使在生成最终工件之后也保留中间文件。
% pwd
~/tmp/sml
% ls
fact* fact.sml