- July 29th, 2015: ... on a roll: Point-free-itize

foo :: (a -> b, a -> b) -> (a, a) -> (b, b)

foo (f,g) (x,y) = (f x, g y) - \[ c^3 \] @das_kube uncurry (***)
- July 29th, 2015: I can't believe this wasn't a #1Liner already. Point-free-itize dup:

dup :: a -> (a,a)

dup x = (x,x) - Antonio Nikishaev @lelff join (,)
- \[ c^3 \] @das_kube id &&& id
- July 23rd, 2015: define pairsies so that, e.g.: pairsies [1,2,3] = {{1, 2}, {1, 3}, {2, 3}} pairsies :: [a] -> Set (Set a)
- pairsies list = concat (list =>> (head &&& tail >>> sequence))
- July 23rd, 2015: define both :: (a -> b) -> (a,a) -> (b,b)
- Chris Copeland @chrisncopeland point-freer: both = uncurry . on (,)
- Brian McKenna @puffnfresh both = join bimap
- July 23rd, 2015: point-free-itize: gen :: Monad m => (m a, m b) -> m (a, b)
- Bob Ippolito @etrepum gen = uncurry (liftM2 (,))
- July 17th, 2015: You may have seen this before, but here we go. point-free-itize swap:

swap :: (a,b) -> (b,a)

## Thursday, September 3, 2015

### 1Liners July 2015

Subscribe to:
Post Comments (Atom)

## No comments:

Post a Comment