[Haskell-cafe] What is this applicative functor?

Joachim Breitner mail at joachim-breitner.de
Wed Feb 1 15:33:53 UTC 2017


David wrote:
> How about this?
> hd (OneStep x xs) = x
> instance Monad OneStep where
>     OneStep x xs >>= f = OneStep y (map (hd . f) xs ++ ys)
>         where
>         OneStep y ys = f x
> Not sure if it’s good for anything, but it seems valid and consistent
> based on a preliminary investigation.

Yes, this looks reasonable. Did you happen to already work through the
monad laws? 

Am Mittwoch, den 01.02.2017, 09:34 +0200 schrieb Oleg Grenrus:
> These instances are quite similar to
> https://github.com/ambiata/disorder.hs/blob/ce9ffc1139e32eaa9b82a1a6e
> 2cfeb914d3f705c/disorder-jack/src/Disorder/Jack/Tree.hs#L62-L82

well spotted. It is indeed the same idea, with my Succs (or OneStep or
whatever name is most appropriate) modeling only one step, and the tree
modeling, well, a whole tree.

Also thanks for pointing out disorder-jack, that looks like a nice


Joachim “nomeata” Breitner
  mail at joachim-breitner.dehttps://www.joachim-breitner.de/
  XMPP: nomeata at joachim-breitner.de • OpenPGP-Key: 0xF0FBF51F
  Debian Developer: nomeata at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170201/b4f2a4b1/attachment.sig>

More information about the Haskell-Cafe mailing list