- January 31st, 2017:
 You have d = "3.461497957769017000D+07"
 define parseDouble :: String -> Double
 (n.b.: (read d) :: Double throws an error)
- bazzargh @bazzargh uncurry (*) (bimap read ((10^).read.(dropWhile(`elem`"0+D"))) (break (=='D') d))::Double
- January 31st, 2017: Given
 e :: FilePath -> [String] -> [Epoch]
 readEpochs :: FilePath -> IO [Epoch]
 readEpochs f = e f . lines <$> readFile f
 point-free-itize readEpochs
- Astynax Pirogov @alex_pir uncurry fmap . (((. lines) . e) &&& readFile
- January 30th, 2017: Given
 parseNum :: String -> Maybe (Float, String)
 define: dropNum'' :: String -> Maybe String
 points-free in terms of parseNum
- matt @themattchan dropNum" = fmap snd . parseNum
- January 30th, 2017: For
 parseHeader :: String -> Maybe String
 parseHeader str = match "Start " str <|> match "Finish " str
 eliminate redundancies
- mconcat . ([match] <*> ["Start ", "Finish "] <*>) . pure
- Nickolay Kudasov @crazy_fizruk If you're allowed to use Monoid instead of Alternative, how about this version?
 foldMap match ["Start", "Finish"]
- Andreas Källberg @Anka213  My solution was
 parseHeader str = foldr1 (<|>) . map (`match` str) $ ["Start", "Finish"]
 But that's longer than the original.
- January 25th, 2017:
 given f is type: f :: Int -> a -> Bool
 for: g :: a -> Bool
 g = (||) . f 2 <*> f 27
 rewrite g using f only once in the definition
- Denis Stoyanov @xgrommx ugly version but
 (liftA2 . liftA2) (||) ($2) ($27) f
- January 19th, 2017:
 import Data.Tree.Merkle
 mkleaf :: Show a => a -> Leaf a
 mkleaf = uncurry Leaf . (show . hashDatum &&& id)
 redefine using (<*>)
- Denis Stoyanov @xgrommx smth like
 mkleaf = uncurry Leaf . show . (hashDatum <$> (,) <*> id)
 mkleaf = uncurry Leaf . show . (liftA2 (,) hashDatum id)
- January 19th, 2017:
 mkbranch1 :: Leaf a -> Branch a
 mkbranch1 = uncurry Twig . (uncurry childrenHash . (dataHash &&& dataHash) &&& id)
 redefine using (<*>)s(?)
Incorporates strong typing over predicate logic programming, and, conversely, incorporates predicate logic programming into strongly typed functional languages. The style of predicate logic is from Prolog; the strongly typed functional language is Haskell.
Pages
▼