假设我有以下类型:
data Test = Test1 | Test2
deriving (Eq, Show)
data TestDS = TestDS {
testField1 :: String,
testField2 :: Test
} deriving (Eq, Show)
testFilter :: [TestDS] -> [TestDS]
testFilter tdata = filter (\x -> testField2 x == Test2) tdata
是否可以将上面的过滤函数转换为以下形式:
filter (Test2 == testField2) tdata
(上面的过滤函数当然会产生编译错误)
最佳答案
这是你想要的吗?
filter ((Test2 ==) . testField2) tdata
记住 (Test2 ==) 和 testField2 都是可以组合的函数。
关于haskell - 简化高阶函数中的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20698082/