reactive-banana
DefendTheKing
reactive-banana | DefendTheKing | |
---|---|---|
5 | 1 | |
522 | 9 | |
- | - | |
3.9 | 0.0 | |
2 months ago | over 9 years ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | LicenseRef-GPL |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
reactive-banana
-
Haskell, JS, and WebDev?
As I grew up on a Macintosh, I was always interested in graphical user interfaces. In my free time, I'm currently working on refreshing my reactive-banana library so that it will hopefully work well with the upcoming JavaScript backend. (The library relies on a few non-trivial garbage collector features, which were not implemented in GHCJS a decade ago. Essentially, I ended up with a program that gave different results, depending on whether it was compiled with GHC native or with GHCJS. 😅)
-
Any haskell-like languages with native FRP?
Another FRP implementation that I think is quite simple is reactive-banana. Heinrich recently refactored the module hierarchy to stratify it based on low-level, mid-level and high-level abstractions: https://github.com/HeinrichApfelmus/reactive-banana/tree/master/reactive-banana/src/Reactive/Banana/Prim
-
Applicatives should usually implement Semigroup and Monoid
I agree! Having foldMap be available in a monadic context is a big win - here's an example of me asking for it in reactive-banana, along with a motivating example - https://github.com/HeinrichApfelmus/reactive-banana/issues/222. Library authors, please consider adding these instances - your users will thank you!
-
How to prevent a deadlock in reactive-banana with event-switching? (Exception: thread blocked indefinitely in an MVar operation)
There are some examples that also use event-switching, like https://github.com/HeinrichApfelmus/reactive-banana/blob/master/reactive-banana-wx/src/BarTab.hs , which also seems to use execute. They use <$ though instead of <$>:
DefendTheKing
-
How was your study routine to become good at haskell?
In COVID I polished and released my Python implementation of the game which I actually did years before the Haskell one, mainly because it kept working while my Haskell implementation bit-rotted due to my choice to use the library GLUT which has since stopped working.
What are some alternatives?
rhine - Haskell Functional Reactive Programming framework with type-level clocks
Yampa - Functional Reactive Programming domain-specific language for efficient hybrid systems
reflex-dom - Web applications without callbacks or side-effects. Reflex-DOM brings the power of functional reactive programming (FRP) to the web. Build HTML and other Document Object Model (DOM) data with a pure functional interface.
dunai - Classic FRP, Arrowized FRP, Reactive Programming, and Stream Programming, all via Monadic Stream Functions
euphoria - Dynamic network FRP with events and continuous values
reactive-banana-sdl2 - reactive banana to sdl2 bindings
reflex-dynamic-containers - dynamic containers for reflex
yampa-glut - Yampa adapter for GLUT
ordrea - Push-pull implementation of discrete FRP with totally-ordered switchers
netwire - FRP library
AFSM - Arrowized functional state machines