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



hi i m nead to 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

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

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

感谢您的帮助!

第二个参数应该是接受 a -> a-> Bool的函数,例如。此功能将在列表中称为每个元素。

您应该像:

一样使用它

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

insort的第二个参数具有(a -> a -> Bool)。这是采用两个a并返回Bool的功能类型。这里aInt

表达式 4 > 3(这只是(>) 4 3的句法糖)仅为Bool类型。可怜的东西。

您需要将(>)功能传递给insort

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

最新更新