嗨我是新的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)
谢谢你的帮助!
第二个参数应该是一个接受a -> a-> Bool,比如说大于的函数.此函数将被调用列表中的每个元素.
您应该像以下一样使用它:
insort [1, 2, 3, 4, 5, 6] (>)
insort有类型的第二个参数(a -> a -> Bool).这是两种函数a并返回a 的函数类型Bool.这a是Int.
表达式 4 > 3(只是语法糖(>) 4 3)只是类型Bool.可怜的东西.
你需要传递这个(>)功能insort.
insort [1, 2, 3, 4, 5, 6] (>)
Run Code Online (Sandbox Code Playgroud)