Haskell语言学习笔记(12)Data.Function
2017-02-26 23:38
435 查看
Data.Function
本文的主题是 Data.Function 这个模块。这个模块包含很多组合子(combinator)。id
返回自身的函数。原来不做任何事也是一个函数。id :: a -> a id x = x
const
返回固定值的函数。const :: a -> b -> a const x _ = x
Prelude> map (const 42) [0..3] [42,42,42,42]
flip
交换某个函数的两个操作数的函数。flip :: (a -> b -> c) -> b -> a -> c flip f x y = f y x
(&)
反向应用函数的函数。(&) :: a -> (a -> b) -> b x & f = f x
-- 求所有小于10000的奇平方数的和 Prelude Data.Function> [1..] & map (^2) & filter odd & takeWhile (<10000) & sum 166650
on
替换某个“带两个相同类型参数的函数“的参数类型的函数。on :: (b -> b -> c) -> (a -> b) -> a -> a -> c (.*.) `on` f = \x y -> f x .*. f y
Prelude Data.Function Data.List> sortBy (compare `on` fst) [(2,"abc"),(1,"def"),(3,"ghi")] [(1,"def"),(2,"abc"),(3,"ghi")] Prelude Data.Function> (zip `on` map fst) [(1,"abc"),(2,"def")] [(3,"abc"),(4,"def")] [(1,3),(2,4)]
相关文章推荐
- Haskell语言学习笔记(54)Data.Set
- Haskell语言学习笔记(53)Data.Sequence
- Haskell语言学习笔记(28)Data.Map
- Haskell语言学习笔记(48)Data.Tuple
- Haskell语言学习笔记(32)Data.Maybe, Data.Either
- Haskell语言学习笔记(36)Data.List.Zipper
- Haskell语言学习笔记(15)Data.List
- Haskell语言学习笔记(13)Monadic Functions
- Go语言学习笔记 --- function
- Haskell语言学习笔记(6)Monad
- Haskell语言学习笔记(24)MonadWriter, Writer, WriterT
- Haskell语言学习笔记(19)File IO
- Perl语言学习笔记 12 文件测试
- 32位汇编语言学习笔记(12)--分析switch语句的汇编代码
- Haskell语言学习笔记(21)Array
- Haskell语言学习笔记(25)MonadState, State, StateT
- Haskell语言学习笔记(18)Traversable
- Haskell语言学习笔记(4)Functor
- Haskell语言学习笔记(3)map, filter, fold
- Haskell语言学习笔记(8)Monoid