No description
Find a file
2014-10-02 20:25:35 -04:00
src Added removeAll function to CallbackSet. 2014-10-02 20:25:35 -04:00
src-clr/freactive Updated ClojureCLR dependency. 2014-08-05 13:01:01 -04:00
test/freactive Added a simple description to README.md 2014-07-10 16:07:28 -04:00
.gitignore First commit. 2014-07-10 15:57:02 -04:00
LICENSE First commit. 2014-07-10 15:57:02 -04:00
project.clj First commit. 2014-07-10 15:57:02 -04:00
README.md Added a simple description to README.md 2014-07-10 16:07:28 -04:00

freactive

Work in progress!

Simple functional reactive programming for Clojure.

Defines a function reactive which takes a function as an argument and returns a clojure.lang.IDeref whose value is flagged to be recomputed every time a reactive dependency is updated. (Dirty reactive values are only recomputed when they are dereferenced).

How can a reactive dependency be updated?

freactive has a reactive atom implementation which will be registered as a reactive dependency when reactive computations are computed based on it.

(ns freactive.core-test
  (:refer-clojure :exclude [atom swap!])
  (:require [freactive.core :refer
             [reactive atom swap!]]))

(def a (atom 0))

(def b (atom 0))

(def r (reactive (fn [] (+ @a @b))))

@r
;; 0

(swap! a inc)
;; 1

@r
;; 1

(swap! b inc)
;; 1

@r
;; 2

Coming soon: reactive agent and ref

License

Copyright © 2014 Aaron Craelius Some content Copyright © Rich Hickey

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.