inlinestyle / lifted.el

Functional reactive programming library for Emacs Lisp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lifted.el Build Status

Functional reactive programming library for Emacs Lisp

Quick Look

This is a rough draft of an FRP library for Emacs Lisp. I'm working from a number of inspirations, primarily ReactiveCocoa and Elm.

(defvar key-signal (lifted:signal-for-key (kbd "C-c s")))

(funcall key-signal
         :map            (lambda (value) (float-time))
         :defer
         :map            (lambda (value) (round value))
         :filter         (lambda (value) (= (% value 2) 0))
         :subscribe-next (lambda (value)
                           (message "subscriber reporting even rounded timestamp: %s" value)))

Chainable Operators

  • lifted:defer
  • lifted:filter
  • lifted:flatten
  • lifted:flatten-map
  • lifted:map
  • lifted:merge

TODO

There's a ton left to do!

  • many more functional operators
  • more diverse deferral options
  • multicasting
  • signal disposal
  • error handling
  • throttling/debouncing
  • sequences & cold signals
  • possibly reducing the number of funcalls
  • cask build
  • getting on MELPA

Acknowledgements

About

Functional reactive programming library for Emacs Lisp


Languages

Language:Emacs Lisp 89.3%Language:Makefile 10.7%