Juha Paananen @raimohanska
List managers = new ArrayList()
for (Employee employee : employees) {
if (employee.title.equals("manager")) {
managers.add(e);
}
}
return managers;
variables, loops, ifs, mutable data structures
employees.filter {e => e.title == "manager"}
a paradigm
var active = true;
var timeout = null;
function setInactive() {
bubble("asleep?")
active = false;
}
function setActive() {
if (!active) {
bubble("back!")
active = true;
}
clearTimeout(timeout);
timeout = setTimeout(setInactive, 10000);
}
$(window).on('keydown mousemove', setActive)
setActive()
bubble("Hello")
variables, manual timeout mgmt, side-effects
var activityE = $(window).asEventStream('mousemove keydown')
var sleepE = activityE.merge(Bacon.once()).debounce(3000)
var activeP = activityE.map(true).merge(sleepE.map(false))
.toProperty(true).skipDuplicates()
var wakeUpE = activeP.changes().where().equalTo(true)
sleepE.map("asleep?").show()
wakeUpE.map("back!").show()
bubble("hello")
an FRP library
Source of events
Observable (subscribe, onValue, onError, onEnd)
map, filter, merge, concat, flatMap
var singleEventStream = Bacon.once("POW")
keyups, map, filter "wanna see flatMap"? later, sequentialy flatmap delay throttle
time-varying value
Observable (subscribe, onValue, onError, onEnd)
map, combine