## Thursday, January 19, 2017

• December 22nd, 2016:  f :: (Either a b, c) -> Either (a, c) (b, c), define f, snaps for elegance, e.g.: f (Left 4, "Hi") = Left (4, "Hi")
• bazzargh @bazzargh uncurry (flip (join bimap . (,) ))
• Denis Stoyanov @xgrommx need (Left 4, "Hi") = Left (4, "Hi") but your version Left ("Hi", 4)
• Thomas D @tthomasdd Do tuple sections count? do I have access to Data.Bifunctor?
• f (eab,c) = bimap (,c) (,c) eab
• SocialJusticeCleric @walkstherain uncurry \$ either ((Left .).(,)) ((Right .).(,))
• Denis Stoyanov @xgrommx or f (e, a) = (join bimap (\x -> (x, a))) e
• Nickolay Kudasov @crazy_fizruk most elegant IMO:
f (Left a, c) = Left (a, c)
f (Right b, c) = Right (b, c)
• December 22nd, 2016: define a function that writes out an infinite, alternating stream of 1's and 0's as below.
• Philipp Maier @AkiiZedd mapM putStrLn \$ join \$ repeat ["0","1"]
• Eyal Lotem @EyalL join . repeat = cycle?
• mavant @mavant f = putStr "10" >> f
• Eyal Lotem @EyalL mapM putStrLn \$ cycle ["0","1"]
• December 10th, 2016:
startsWith :: [String] -> String
points-free so that:
startsWith ["ΜΗΛΟΝ", "ΗΔΟΝΗ"] = "ΛΟ"
That is: (length list)+1 Char of each word
• SocialJusticeCleric @walkstherain
• I prefer `uncurry (!!) . (Data.List.transpose &&& length)`
• but `map . flip (!!) . length =<< id` only uses the Prelude
• Nick @crazy_fizruk zipWith (!!) <*> repeat . length