- added
to-chan
- added
select-step
, likereductions
but with multiple source signals that each get their own reducing function - flipped argument order of the
setup!
function passed tosplice
- added
indexed-updates
, a signal transformer useful for performing different effects based on which source signal has updated - added
reductions
function, which works likereducep
but has a better name and doesn't do an implicitdrop-repeats
- removed
reducep
andtransducep
- got rid of
j.z.i.signal/output-mult
- calling core.async's
tap
function on a live graph created withspawn
now supplies you with straight fresh values from the output signal, instead of batches of fresh & cached messages- this means that values of an output signal can never be
nil
, since core.async channels don't donil
s
- this means that values of an output signal can never be
- added
write-port
, a signal constructor that lets you treat the returned signal like a write-onlycore.async
channel.
- fixed a bug that would throw an error if you tried to use a folding signal like
foldp
on a signal that emitted multiple values from a single event, e.g. apipeline
with an "expanding" transducer likecat
lift
/liftseq
renamed tomap
/mapseq
input
signal constructor now also accepts a channel or mult as its value source- new
pipeline
function lets you transform signals using transducers - extracted some implementation details into
impl
namespaces splice
function lets you create arbitrary asynchronous signal transformations- a bunch of new functions in the
time
namespace (timestamp
,delay
,since
,debounce
) impl.signal/signal-mult
function to get a particular signal's message mult from a live graph- signals now provide init functions to calculate their initial values whenever a live graph is fired up
- various functions which previously required a base value now have lesser-arity forms which inherit the initial value of one of their parent signals
activate-when
function is likekeep-when
, but entirely deactivates unused signals