1毫升

1ML——核心和模块联合(F-ing一流模块)。ML是两种语言合为一体的:有核心,有类型和表达式,有模块,有签名、结构和函子。模块在核心之上形成一个独立的、高阶的函数式语言。这种分层既有实际原因也有技术原因;然而,它在语法和语义上造成了大量的重复,并降低了表现力。例如,选择一个模块不能是一个动态的决定。允许模块打包为一级值的语言扩展已经被提出并以不同的变体实现。然而,我们提出的一些模块在语法上并不是一个整体,只是为了减轻模块的冗余。在这个“1ML”中,函数、函子甚至类型构造函数都是同一个构造;同样,结构、记录或元组之间也没有区别。或者从另一个角度来看,一切都只是(“一种使用模式”)的模块。然而,1ML不需要依赖类型,它的类型结构可以用普通的$mathrm{F}}{omega}$来表示,这是我们F-ing模块方法的一个小变化。我们介绍了1ML的显式类型化版本和Damas/Milner风格的隐式量化扩展。这种语言的类型推断并不完整,但是,我们认为,与标准ML相比,1ML并没有比标准ML更糟糕。另一种观点是,对于系统$mathrm{F}}{omega}$来说,1ML是一种用户友好的表面语法,它允许以比纯演算更为组合的方式组合术语和类型抽象。

此软件的关键字

这里的任何内容都将在支持canvas元素的浏览器上被替换