a one dimensional cellular automata, using comonads
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

13 lines
255B

  1. module Comonad where
  2. -------------------
  3. -- comonad class --
  4. -------------------
  5. class Functor w => Comonad w
  6. where
  7. (=>>) :: w a -> (w a -> b) -> w b
  8. extract :: w a -> a
  9. duplicate :: w a -> w (w a)
  10. x =>> f = fmap f (duplicate x)