我需要在列表的给定COLUMN中找到一个最大的元素:
myList = [(1,2,0), (3,5,8), (9,1,2)]
这样的事情:
max(myList(:,2)) // maximal element in the 2nd column
在这个例子中答案应该是5。
我编写了以下代码,但是如何将第1列或第2列放入“max”的输入中?
fun findSum(myList:MyList) = max(#1 myList) + max(#2 myList)
fun max [] = 0
| max (x::xs) = foldl Int.max x xs
感谢。
答案 0 :(得分:2)
最简单的方法是将适当的选择器映射到列表上,然后在结果上使用max。
max (map #2 myList)
注意,当然,没有办法为任意大小的元组(由于类型)做到这一点,并且没有简单的方法将整数转换为选择器。 (除了创建一个函数,您可以手动将每个整数映射到适当的选择器上。)