Function 高阶函数

Function 高阶函数,function,higher-order-functions,Function,Higher Order Functions,从这个问题上,我很难理解我的讲师想要我做什么。谁能帮我解释一下他要我做什么 定义插入排序算法的高阶版本。这就是定义 功能 insertBy :: Ord b => (a->b) -> a -> [a] -> [a] inssortBy :: Ord b => (a->b) -> [a] -> [a] 这一点让我感到困惑: 这样inssort f l对列表l进行排序,使得元素x位于元素yif x

从这个问题上,我很难理解我的讲师想要我做什么。谁能帮我解释一下他要我做什么

定义插入排序算法的高阶版本。这就是定义 功能

insertBy :: Ord b => (a->b) -> a -> [a] -> [a] 

inssortBy :: Ord b => (a->b) -> [a] -> [a]
这一点让我感到困惑:
这样inssort f l对列表l进行排序,使得元素x位于元素yif x

如果对数字进行排序,那么很清楚x 因此,您应该创建一个函数f(),该函数定义排序过程的顺序。该f()将接受字母、客户或其他内容,并为计算机实际可以排序的每个字母返回一个整数


至少,问题是这样描述的。我个人会设计一个谓词,接受两个项x和y,如果x代码希望您重写插入排序算法,但使用函数作为参数,从而使用高阶函数

我想指出的是,这段代码,包括打字在内,似乎源于某所大学目前正在进行的一项工作——我在搜索“插入排序算法”时发现了这一页,因为我从文档中复制粘贴了这个术语,包括打字在内


从互联网上寻找代码是一件冒险的事情。我可以推荐wikipedia条目中的插入排序算法,或者您的课堂幻灯片中提供的Haskell代码(您正在寻找“插入排序算法”和“高阶函数”),而不是针对堆栈溢出的几个查询吗?

实际上,描述中没有提到任何整数。在Haskell中,
(>)
可用于任何已订购的类型(由typeclass
Ord
表示)。因此,第一个参数只是一个函数,它将
a
s转换为有序
b
s。