Sml元组长度

我感兴趣的是是否有可能的方法来获得 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

回答

你最有可能做的事情的一个例子;定义一些有用的和类型

首先,让我们发明两种方法来识别一个人:

datatype Person = JustName of string
                | NameAndNumber of string * int

datatype Identifier = Name of string
                    | Number of int

那么你可以得到一个Identifierfor a Person

fun identifier (JustName n) = Name n
  | identifier (NameAndNumber (_, i)) = Number i

让我们和一些人一起测试:

- val people = [JustName "A", NameAndNumber ("B", 23), JustName "C", NameAndNumber ("D", 22)];
val people =
  [JustName "A",NameAndNumber ("B",23),JustName "C",NameAndNumber ("D",22)]
  : Person list

- map identifier people;
val it = [Name "A",Number 23,Name "C",Number 22] : Identifier list


以上是Sml元组长度的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>