繁体   English   中英

检查是否在SML中定义了函数

[英]Check if function is defined in SML

给定SML源文件,是否可以检查(使用Poly / ML)是否定义了函数/值名称列表? 如果是这样,怎么样?

或者,我注意到您可以执行以下操作。 假设我们有一个名为somefile.sml的源文件。 假设我们创建文件test.sml ,其中包含以下内容:

use "somefile"
f; (* defined in somefile.sml *)
g; (* undefined *)

然后我们运行:

use "test" handle e as SyntaxError => (print (exnMessage e));

不幸的是,这只打印出“静态错误”。 是否有任何方法,与上述类似,确定(在代码中)未定义“test.sml”中的哪些函数?

可能没有办法可移植,但在Poly / ML中,您可以找出使用PolyML.globalNameSpace定义值或其他任何值。

测试值(例如函数)使用

#lookupVal PolyML.globalNameSpace

这将获取一个名称并返回一个选项类型,如果已定义该值,则为SOME;如果尚未定义,则返回NONE。 所以

#lookupVal PolyML.globalNameSpace "f";

将返回

SOME ?

#lookupVal PolyML.globalNameSpace "g";

将返回NONE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM