【发布时间】:2021-07-27 21:12:20
【问题描述】:
我很感兴趣是否有一种方法可以在 sml 中获取元组的长度?!看例子
val tes = ((1,"test"),("test","some"))
Lenght(tes) = 2
我想要它来解决问题有一个问题说要获取学生列表,其中包含每个学生信息的列表,但学生信息在两种类型中有所不同,有些类似
(1,"test","nick")
有些像
("name","nick")
所以它想返回学生列表中每个列表的第一个元素,如下所示:
((1,"test","nick"),("test2","nick2"),(2,"test3","nick3"))
Return > (1,"test2",2)
这里有更多信息 M Molbdnilo @molbdnilo
【问题讨论】:
-
你不能写一个函数来接受不同“tuplicities”的元组,所以不,这是不可能的。 (除了琐碎;你当然可以写
fun length (a,b) = 2)你打算用这些信息做什么? (见XY problem。) -
@molbdnilo 我有一个问题要解决,它要求我获取学生信息列表并返回他们的第一个元素学生列表包含两种类型的列表,其中一些类似于(id, "name","nick"),其中一些类似于 ("name","nick")
-
但是你会遇到
(int * string * string) list类型与(string * string) list类型不同的问题——所以你尝试编写的函数将是错误类型的。跨度> -
我怀疑你应该定义一个新的数据类型,并有一个列表。
-
如前所述,您不能拥有您在 ML 中提到的列表。这基本上是不可能的——列表的所有元素都必须具有相同的类型。您一定遗漏了问题描述的一些关键部分。