元组的多态函数列表

时间:2014-09-13 08:44:54

标签: sml

给出一个类型(真实*'a)列表的列表。我首先想要找到列表中最大的实数,然后为最大的实数返回相应的'a。任何人都可以给我一个提示。我试图制作一个模式

((x1,x2),(y1,y2) :: xs) = if x1 > largest((y1,y2)::xs) then x2 else y2.

我没有写完整个功能因为我是手机。我用一个元素处理了空列表和列表。

1 个答案:

答案 0 :(得分:0)

也许这个是你想要的?请注意,空列表的情况仍然缺失,这会给您一个编译器警告。

fun largest ((x1,x2) :: nil) = x2
  | largest ((x1,x2) :: (y1,y2) :: xs) = 
    if y1 > x1 then 
      largest((y1,y2) :: xs) 
    else 
      largest((x1,x2) :: xs) 

val max = largest [(1.0,"a"), (4.0, "b"), (4.0, "c"), (3.0, "d")]

给你:max =" b"