-1

Python についてこの質問を見たことがありますが、SML (PolyMl) についても同じ質問があります。

(int, string)タプルのリストから最小のタプルの文字列値を抽出する関数を作成したいと思いますint

たとえば、次のリストがあるとします。

l = [('a', 5), ('b', 3), ('c', 1), ('d', 6)]

'c'最小整数がタプルにあるため、出力は になります('c', 1)。ありがとう!

4

2 に答える 2

2
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
于 2015-02-18T20:50:50.763 に答える
0
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 *)
于 2016-03-01T18:42:31.337 に答える