gpt4 book ai didi

sml - 带类型单位的函数

转载 作者:行者123 更新时间:2023-12-04 22:39:59 24 4
gpt4 key购买 nike

我正在尝试创建一个具有以下类型的函数:

unit -> (int list * int list * int list)

但我想知道,unit 是一个空类型(没有值),那么怎么可能用它做一些事情并返回 3 个 int 列表呢?

谢谢

最佳答案

类型unit不为空。
它有一个拼写为 () 的值,通常称为“unit”,就像它的类型一样。
(“单位”一词的一个意思是“单一的东西”。)

例子:

- ();
val it = () : unit
- val you_knit = ();
val you_knit = () : unit

- fun foo () = ([1], [2], [3]);
val foo = fn : unit -> int list * int list * int list
- foo ();
val it = ([1],[2],[3]) : int list * int list * int list
- foo you_knit;
val it = ([1],[2],[3]) : int list * int list * int list

(注意 () 不是空参数列表;ML 没有参数列表。)

严格来说,上面的定义模式匹配值()
如果没有模式匹配,它可能看起来像这样:

- fun bar (x : unit) = ([1], [2], [3]);
val bar = fn : unit -> int list * int list * int list
- bar ();
val it = ([1],[2],[3]) : int list * int list * int list

关于sml - 带类型单位的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33280810/

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