Haskell(a - > a - > Bool)函数定义

Cod*_*ame 0 haskell

嗨我是新的haskell和我有功能定义的困难时期.在作业中我需要使用此功能

insort :: [a] -> (a -> a -> Bool) -> [a]
insort [] _     = []
insort (x : xs) f   =   ins x (insort xs f)
                        where
                        ins x []    = [x]
                        ins x (y : ys) =    if (f x y) 
                                            then x : y : ys
                                            else y : ins x ys
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何使用它...对我来说似乎应该是:

insort [1,2,3,5,6] (4 > 3)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Eva*_*oli 6

第二个参数应该是一个接受a -> a-> Bool,比如说大于的函数.此函数将被调用列表中的每个元素.

您应该像以下一样使用它:

insort [1, 2, 3, 4, 5, 6] (>)


jca*_*er2 5

insort有类型的第二个参数(a -> a -> Bool).这是两种函数a并返回a 的函数类型Bool.这aInt.

表达式 4 > 3(只是语法糖(>) 4 3)只是类型Bool.可怜的东西.

你需要传递这个(>)功能insort.

insort [1, 2, 3, 4, 5, 6] (>)
Run Code Online (Sandbox Code Playgroud)