## Saturday, November 4, 2017

• October 20th, 2017:
You have a list of numbers: [1,2,3,4]
You have a list of the same length of number fns: [succ, id, id, succ]
You want: [2,2,3,5]
•  🇪🇺 Cλément D  🌈  🐇 @clementd zipWith (flip (\$)) ?
•  he adds: `zipWith (flip id)` is a bit shorter tho
• Simon Courtenage @SCourtenage zipWith (\$) [succ,id,id,succ] [1,2,3,4]
• lukasz @lukaszklekot getZipList \$ ZipList [succ, id, id, succ] <*> ZipList [1, 2, 3, 4]
• Alexey Radkov @sheshanaag (map (uncurry (\$)) .) . zip
• October 5th, 2017: "reverse the sequencing"
You have [[(1,2),(1,3),(1,7)],[(9,2)],[(11,3)]]
You want [(1,[2,3,7]),(9,[2]),(11,[3])]
• bazzargh @bazzargh map ((,) <\$> head.(map fst) <*> (map snd))
• bazzargh @bazzargh map ((first head).unzip)
• Chris Martin @chris__martin \x -> [(a, b : fmap snd xs) | Just ((a, b) :| xs) <- fmap="" li="" nonempty="" x="">
• Simon Courtenage @SCourtenage fmap (\x -> (fst . head \$ x, fmap snd x))
• Denis Stoyanov  🐜 @xgrommx Your solution nice) but u can do it with point free style like
• Denis Stoyanov  🐜 @xgrommx My solution is ugly, but I wanna to solve it with traverse)
• fmap(first head . traverse (first (:[])))
• Andreas Källberg @Anka213 map\$fst.head&&&map snd
• Scott Fleischma‏ @scottfleischman
traverse
\$ _1
(\case
[y] -> Just y
_ -> Nothing
. nub
)
. unzip
:: [[(Int, Int)]] -> Maybe [(Int, [Int])]
• Scott Fleischman @scottfleischman
let
•  sing [] = Left "Too few"
sing [x] = Right x
sing (_ : _) = Left "Too many"
valid = sing . nub
go = _1 valid . unzip
in traverse go
• matt @themattchan map ((head *** id ) . unzip)
• October 3rd, 2017:
you have [(1,[2,3,4]),(10,[5,6,7])]
you want [(1,2),(1,3),(1,4),(10,5),(10,6),(10,7)]

or, generally: [(a,[b])] -> [(a,b)]

Go!

• bazzargh @bazzargh (uncurry (zip . repeat) =<<)