Sml 获取PolyML中(int,string)元组列表中的最小/最大int

Sml 获取PolyML中(int,string)元组列表中的最小/最大int,sml,ml,polyml,Sml,Ml,Polyml,我在Python中看到了这个问题,但在SML(PolyMl)中也遇到了同样的问题 我想创建一个函数,从元组列表(int,string)中提取最小int的元组字符串值 例如,如果我有以下列表: l = [('a', 5), ('b', 3), ('c', 1), ('d', 6)] 输出应该是'c',因为最小整数在元组('c',1)中。谢谢大家! val l=[(#“a”,5),(#“b”,3),(#“c”,1),(#“d”,6)] val l = [(#"a", 5), (#"b", 3),

我在Python中看到了这个问题,但在SML(PolyMl)中也遇到了同样的问题

我想创建一个函数,从元组列表
(int,string)
中提取最小
int
的元组字符串值

例如,如果我有以下列表:

l = [('a', 5), ('b', 3), ('c', 1), ('d', 6)]
输出应该是
'c'
,因为最小整数在元组
('c',1)
中。谢谢大家!

val l=[(#“a”,5),(#“b”,3),(#“c”,1),(#“d”,6)]
val l = [(#"a", 5), (#"b", 3), (#"c", 1), (#"d", 6)]

fun min [] = NONE
  | min [x] = SOME x
  | min ((c1,n1) :: (c2,n2) :: xs) = if n1 < n2 then
                                       min ((c1,n1) :: xs) 
                                     else
                                       min ((c2,n2) :: xs)

val SOME (c,_) = min l
fun min[]=无 |min[x]=一些x |min((c1,n1):(c2,n2)::xs)=如果n1
vallst=[(#“a”,5),(#“b”,3),(#“c”,1),(#“d”,6)];
(*元组的第一项使用#1.*获取)
#1(List.foldl)
(fn((新as(,n)),(旧as(,n0))=>
如果n
val lst = [(#"a", 5), (#"b", 3), (#"c", 1), (#"d", 6)];

(* The first item of a tuple is fetched with #1. *)
#1(List.foldl
    (fn ((new as (_,n)), (old as (_,n0))) =>
      if n < n0 then new else old)
    (hd lst)
    (tl lst));

(* val it = #"c" : char *)