Sml元组长度
Sml tuples length
我想知道是否有可能在 sml 中获取元组的长度?!参见示例
val tes = ((1,"test"),("test","some"))
Lenght(tes) = 2
我想要它来解决问题有一个问题说要获取学生列表,其中包含每个学生信息的列表但是学生信息在两种类型中是不同的,有些像
(1,"test","nick")
有些像
("name","nick")
所以它想要 return 学生列表中每个列表的第一个元素,如下所示:
((1,"test","nick"),("test2","nick2"),(2,"test3","nick3"))
Return > (1,"test2",2)
这里有更多信息 M Molbdnilo
@molbdnilo
您最有可能做的事情的一个例子;定义一些有用的 sum 类型.
首先,让我们发明两种识别人的方法:
datatype Person = JustName of string
| NameAndNumber of string * int
datatype Identifier = Name of string
| Number of int
然后你可以获得 Identifier
换 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 中获取元组的长度?!参见示例
val tes = ((1,"test"),("test","some"))
Lenght(tes) = 2
我想要它来解决问题有一个问题说要获取学生列表,其中包含每个学生信息的列表但是学生信息在两种类型中是不同的,有些像
(1,"test","nick")
有些像
("name","nick")
所以它想要 return 学生列表中每个列表的第一个元素,如下所示:
((1,"test","nick"),("test2","nick2"),(2,"test3","nick3"))
Return > (1,"test2",2)
这里有更多信息 M Molbdnilo @molbdnilo
您最有可能做的事情的一个例子;定义一些有用的 sum 类型.
首先,让我们发明两种识别人的方法:
datatype Person = JustName of string
| NameAndNumber of string * int
datatype Identifier = Name of string
| Number of int
然后你可以获得 Identifier
换 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