📅  最后修改于: 2023-12-03 14:47:31.209000             🧑  作者: Mango
sortOn
函数在Haskell编程语言中,sortOn
函数是对列表中的元素进行排序的一种常用方法。sortOn
函数根据给定的键函数对列表中的元素进行排序,并返回一个新的排序列表。
sortOn :: (Ord b) => (a -> b) -> [a] -> [a]
sortOn
函数接受一个类型为a
的列表和一个类型为b
的键函数作为参数,并返回一个元素类型为a
的排序列表。a
的元素映射到类型为b
的键,决定了元素的排序顺序。b
类型必须是有序的,所以要求b
实现了Ord
类型类。假设我们有一个Person
类型的列表,每个Person
对象包含姓名和年龄属性。
data Person = Person { name :: String, age :: Int } deriving (Show)
我们想根据人物的年龄对列表进行排序。可以这样定义一个键函数:
sortByAge :: Person -> Int
sortByAge = age
现在我们可以使用sortOn
函数根据年龄对Person
对象进行排序:
people = [Person "Alice" 25, Person "Bob" 32, Person "Charlie" 18]
sortedPeople = sortOn sortByAge people
以上代码将返回一个按年龄从小到大排序的人物列表。
sortOn
函数是按照键函数的结果进行排序的,而不是根据键函数的自然顺序进行排序。希望以上信息对你对sortOn
函数有所帮助。你可以在Haskell的官方文档中了解更多有关sortOn
函数的详细信息。