[英]Haskell (a -> a -> Bool) function definition
嗨,我是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)
insort
(a -> a -> Bool)
insort
(a -> a -> Bool)
。 这是采用两个a
并返回Bool
的函数的类型。 这里a
是Int
。
表达式4 > 3
(仅是(>) 4 3
语法糖)就是Bool
类型。 可怜的东西。
您需要将(>)
函数传递给insort
。
insort [1, 2, 3, 4, 5, 6] (>)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.