
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Peter Verswyvelen wrote:
But what is the minimal set of functions one must implement to build a Reactive library, in the sense that all others can be implemented using these?
My in-progress FRP implementation is loosely based on Reactive. The semantics are essentially the same, although the interface is becoming a bit different, the implementation is completely different, and mine has some limitations (which I may decide to intentionally leave in) which Reactive does not. Keeping in mind that I haven't implemented all functionality yet, these are the functions I currently have which require unexported constructors and functions, ignoring some which have to do with my changed interface: * Functor Event functions * Monoid (Event a) functions * Functor Reactive functions * Applicative Reactive functions * Functor (Behavior t) functions * Applicative (Behavior t) functions * rToB :: Reactive a -> Behavior t a * accumE :: a -> Event (a -> a) -> Event a * stepper :: a -> Event a -> Reactive a * snapshot :: Event a -> Reactive b -> Event (a, b) * time :: Behavior t t * timeR -- a type specific to my interface * filterE :: (a -> Bool) -> Event a -> Event a * partitionE :: (a -> Bool) -> Event a -> (Event a, Event a) I plan to eventually separate these core functions from my derived functions into different modules, making these distinctions more clear. I also suspect that this set is not as minimal as it can be and will try to make it shorter in the future. I know this doesn't necessarily help you since mine is not really Reactive, but I thought perhaps it could give you at least an idea. - - Jake -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAklVCfwACgkQye5hVyvIUKkS1gCgscABZOLtz5AafRsI9hC8IbTF NJkAoMB5xQleVJc5R0hPMJ5NS+Gl2ShY =doca -----END PGP SIGNATURE-----