
NonEmpty?
On Tue, Jan 31, 2017 at 2:22 PM, Joachim Breitner
Hi,
I recently wrote this applicative functor:
data OneStep a = OneStep a [a]
instance Functor OneStep where fmap f (OneStep o s) = OneStep (f o) (map f s)
instance Applicative OneStep where pure x = OneStep x [] OneStep f fs <*> OneStep x xs = OneStep (f x) (map ($x) fs ++ map f xs)
takeOneStep :: OneStep t -> [t] takeOneStep (OneStep _ xs) = xs
This was useful in the context of writing a shrink for QuickCheck, as discussed at http://stackoverflow.com/a/41944525/946226.
Now I wonder: Does this functor have a proper name? Does it already exist in the libraries somewhere? Should it?
Greetings, Joachim
-- Joachim “nomeata” Breitner mail@joachim-breitner.de • https://www.joachim-breitner.de/ XMPP: nomeata@joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F Debian Developer: nomeata@debian.org _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- Chris Allen Currently working on http://haskellbook.com