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
的功能类型。这里a
是Int
。
表达式 4 > 3
(这只是(>) 4 3
的句法糖)仅为Bool
类型。可怜的东西。
您需要将(>)
功能传递给insort
。
insort [1, 2, 3, 4, 5, 6] (>)