gpt4 book ai didi

build - 使用 Poly/ML 构建具有嵌套目录结构的项目

转载 作者:行者123 更新时间:2023-12-01 22:31:39 26 4
gpt4 key购买 nike

到目前为止,我一直在使用 Poly/ML 进行几个所有源代码文件都在同一目录中的小项目。要构建这些项目,我所要做的就是在 REPL 中运行以下命令:

> PolyML.make "Main";

但现在我有一个项目,其规模使得将所有源代码文件放在同一个目录中是不切实际的。要在 REPL 中构建这些项目,我需要运行以下命令:

> PolyML.make "foo/Foo";
> PolyML.make "bar/Bar";
> PolyML.make "qux/Qux";
> PolyML.make "Main";

随着子系统数量的增加,这并不是很实用。

有什么方法可以在 Poly/ML 中自动构建具有嵌套目录结构的项目?


P.D.:我看过 SML/NJ 的编译管理器和 MLton 的 ML Basis 系统。虽然这些功能无疑非常强大,但对于我的需求来说太复杂了。

最佳答案

在每个子目录中放置一个名为 ml_bind.ML 的文件,并让这些文件为该目录构建组件。

PolyML.make 期望源文件的名称与组件的名称(结构、签名或仿函数)相匹配。因此,如果它正在寻找名为“Foo”的结构,它会在名为“Foo”、“Foo.ML”或“Foo.sml”的文件中寻找“Foo”的源代码。相反,如果它找到一个名为“Foo”的目录,它会递归地进入“Foo”目录并使用“ml_bind.ML”文件作为构建“Foo”结构的指南。通常,“Foo/ml_bind.ML”看起来像

structure Foo = FooFunctor(structure A = FooA and B = FooB);

文件“Foo/FooFunctor.ML”、“Foo/FooA.ML”和“Foo/FooB.ML”分别包含“FooFunctor”、“FooA”和“FooB”的源代码。

您可以在作为 Poly/ML 源代码分发的一部分的 Poly/ML 编译器的代码中找到这方面的示例。

关于build - 使用 Poly/ML 构建具有嵌套目录结构的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com