我有以下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发布于 2017-11-05 19:31:31
mlton -stop g -codegen c应该做您想做的事情,但是由于MLton作为一个完整的程序编译器的工作方式,您的函数就不会剩下任何东西了。
https://stackoverflow.com/questions/47125657
复制相似问题