Tri*_*tos 10 haskell functional-programming naming-conventions
haskell中是否有一些函数在一个列表遍历(这里是两个)中求值(过滤p xs,filter(not.p)xs)或者在这种函数的函数式编程中是否有一些通用名称?
fry*_*bob 33
首先看一下你需要的类型:
Prelude> :t \p xs -> (filter p xs, filter (not . p) xs)
\p xs -> (filter p xs, filter (not . p) xs)
:: (a -> Bool) -> [a] -> ([a], [a])
Run Code Online (Sandbox Code Playgroud)
Prelude> :hoogle (a -> Bool) -> [a] -> ([a], [a])
Prelude break :: (a -> Bool) -> [a] -> ([a], [a])
Prelude span :: (a -> Bool) -> [a] -> ([a], [a])
Data.List break :: (a -> Bool) -> [a] -> ([a], [a])
Data.List partition :: (a -> Bool) -> [a] -> ([a], [a])
Data.List span :: (a -> Bool) -> [a] -> ([a], [a])
Run Code Online (Sandbox Code Playgroud)
现在试试这些功能:
Prelude> break odd [1..10]
([],[1,2,3,4,5,6,7,8,9,10])
Prelude> span odd [1..10]
([1],[2,3,4,5,6,7,8,9,10])
Prelude> import Data.List
Prelude Data.List> partition odd [1..10]
([1,3,5,7,9],[2,4,6,8,10])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
898 次 |
| 最近记录: |