sml - (SML) 将类型定义为函数并创建此类型的函数

标签 sml smlnj

这里的第一个问题只是想作为我做了几个查询的序言,虽然我发现了多个措辞相似的问题,但我发现没有一个问题在问或回答我的问题(据我所知)。

我正在 SML 中进行类作业,因此我将省略一些细节,以便我可以自己解决问题。我在 SML 中定义了以下类型:

- type Env = string -> int;

本质上,Env 类型应该是一个允许从字符串映射到 int 的函数——这是一个简单的环境方案。创建一个执行此操作的函数就足够了,即:
- fun foo (s:string) = 10; (*simple example*)

但是有没有办法将这个函数实际声明为“Env 类型”?原因是最终我需要创建一个返回值为 Env 类型函数的函数,而我不知道如何执行此操作。我知道 SML 允许类型别名,我认为这意味着技术上任何具有类型 string -> int 的函数将与程序的 Env 类型同义,但我想要更明确的内容。

如果需要澄清,请询问,我将尝试更简洁。

最佳答案

The reason is eventually I need to create a function whose return value is an Env type function and I have no idea how to perform this.



使用时 fun , 可以指定返回类型为 Env通过放置类型注释 : Env在所有的论证模式之后;例如:
fun fooFactory arg : Env = ...

关于sml - (SML) 将类型定义为函数并创建此类型的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35255943/

相关文章:

data-structures - 在标准 ML O(n) 时间内追加到列表中吗?

recursion - 为什么我的 'a list * ' 类型的函数是 a list -> 'b list?

sml - K out on N 实现 - SML

sml - val it = () : unit mean in SML? 是什么意思

binary - 如何在标准 ML 中检查整数的以 2 为底的表示形式?

haskell - 更好地显示 bool 公式

sml - SML中的SOME和NONE选项有哪些?

sml - number_in_month 练习(迭代 SML 中的多个列表)

recursion - 如何在 SML 中递归计算数字的位数

smlnj - 如何计时我的 sml 代码?